4, 8, 15, 16, 23, 42
Escriba un programa que genere esta secuencia de números infinitamente. Sin embargo, The Numbers no debe aparecer en su código fuente en ninguna parte.
El siguiente no es un programa Java válido para generar The Numbers porque The Numbers aparece en su código fuente:
class TheNumbers {
public static void main(String[] args) {
for(int n = 0;;) System.out.println(
n == 4 ? n = 8 :
n == 8 ? n = 15 :
n == 15 ? n = 16 :
n == 16 ? n = 23 :
n == 23 ? n = 42 : (n = 4)
);
}
}
La definición de "Los números no deben aparecer en su código fuente" es la siguiente:
- No debes usar el número 4.
- No debes usar el número 8.
- No debe usar el número 1 seguido del número 5.
- No debe usar el número 1 seguido del número 6.
- No debe usar el número 2 seguido del número 3.
Si su idioma ignora ciertos caracteres que se pueden colocar entre los números, no es una sustitución válida. Entonces, por ejemplo, si su idioma interpreta el literal 1_5
como 15
, esto contaría como el número 1 seguido del número 5.
Las bases alternativas se incluyen en la restricción, por ejemplo:
- Binary 100 no se puede usar como sustituto de 4.
- Octal 10 no puede usarse como sustituto del 8.
- El hexadecimal F no se puede usar como sustituto de 15.
Por lo tanto, el siguiente es un programa Java válido (pero no muy inspirado) para generar The Numbers porque The Numbers no aparece en su código fuente:
class TheNumbers {
public static void main(String[] args) {
for(int n = '*';;) {
System.out.println(n -= '&');
System.out.println(n *= 2);
System.out.println(n += 7);
System.out.println(++n);
System.out.println(n += 7);
System.out.println(n += 19);
}
}
}
Tenga en cuenta que en ese programa, '*'
y '&'
se sustituyen por los enteros 42 y 38, porque de lo contrario los números 4 y 8 aparecerían en su código fuente.
La definición de "genera la secuencia infinitamente" está abierta a interpretación. Entonces, por ejemplo, un programa que genera glifos cada vez más pequeños hasta que sean "infinitamente" pequeños sería válido.
Felicitaciones si puede generar la secuencia de alguna manera que no sea básicamente codificar cada número.
- Derivándolo a una fórmula. Mi impresión es que no hay una, pero tal vez la hay o puede ser falsa.
- Arreglando un generador pseudoaleatorio para devolver la secuencia.
Este es un concurso de popularidad, así que sé creativo. La respuesta con más votos el 26 de marzo es la ganadora.
This isn't an interesting question, IMHO, since the solution is pretty trivial. Please post in the sandbox next time.
sería mucho mejor que This is a stupid question.
eso, pero esa es solo mi opinión personal.