No sé si es semánticamente correcto, pero es bastante fácil calcular el caso aún más general: ¿cuántas funciones de $k$ argumentos, cada uno puede tomar n valores y la función puede producir uno de m resultados para cada combinación. Como este blog dice , sus argumentos proporcionan $n^k$ combinaciones de valores. Usted puede interpretar su función como una función de argumento único, que toma uno de $n^k$ valores. Ahora, se empieza por colocar todas las funciones posibles en un grupo
[all possible functions]
y aplicar el primer valor de $n^k$ . Las funciones del grupo responderán con $m$ diversos resultados. De este modo, habrá resuelto un grupo en $m$ subgrupos.
[responded with 1][responded with 2] ... [responded with m]
En el siguiente paso, se aplica el siguiente valor de $n^k$ a cada subgrupo. De nuevo, las funciones en esos subgrupos se dividirán en $m$ otros subgrupos. Después de dos pasos, habrá resuelto todas sus funciones en $m^2$ subgrupos. Tras aplicar todos $n^k$ valores de entrada, ha resuelto el grupo inicial en $m^{n^k}$ subgrupos. No tiene más pruebas que aplicar. Por lo tanto, consideras que todas las funciones de los subgrupos resultantes son idénticas. Tiene $m^{n^k}$ diferentes funciones. ¿No es precioso?
En caso de que los argumentos de la función y los valores pertenezcan al mismo tipo (el tipo es un rango de valores que puede tomar la variable), se tiene $m=n$ y $n^{n^k}$ diferentes funciones. En particular, en caso de que el tipo sea binario, podemos tener $2^{2^k}$ funciones. Estoy seguro de que todas las funciones son realizables (existe la noción de integridad funcional ) y, por lo tanto, son semánticamente correctos si eso es lo que quieres decir.