Un físico perezoso tiene el trabajo de realizar el experimento de doble rendija. Sin embargo, son flojos y no pueden molestarse en configurar todo el equipo ellos mismos, por lo que simularán los efectos. Sin embargo, no pueden programar, por lo que necesitarán ayuda. Como son flojos, su programa debe ser lo más corto posible.
Dado un entero positivo impar n
( n >= 1
y n % 2 == 1
), realice la simulación.
Cómo funciona
Comenzará con un lienzo vacío y cada cuadro, una sola partícula de luz pasará por las rendijas y aterrizará en el lienzo. La partícula aterrizará en un máximo con una posibilidad de:
n = 1
:
+-----+
| |
| 1/2 |
| |
+-----+
n = 3
:
+-----+ +-----+ +-----+
| | | | | |
| 1/4 | | 1/2 | | 1/4 |
| | | | | |
+-----+ +-----+ +-----+
n = 5
:
+-----+ +-----+ +-----+ +-----+ +-----+
| | | | | | | | | |
| 1/8 | | 1/4 | | 1/2 | | 1/4 | | 1/8 |
| | | | | | | | | |
+-----+ +-----+ +-----+ +-----+ +-----+
etc.
Por ejemplo, para n=5
marcar el cuadro del medio, hay un 50% de posibilidades de caer en él. Si cae al final del cuadro, si no se mueve a los siguientes dos, hay un 25% de posibilidades de caer en esos. Si cae al final del cuadro, si no se mueve a los siguientes dos, hay un 12.5% de posibilidades de caer en esos. Si no cae, no importa, sigue siendo el final del marco.
Ha habido cierta confusión sobre cómo calcular las posibilidades, la mayor parte de esto se debe a que las personas piensan en ellas como probabilidades que deberían sumar 1. Elimina esa idea de tu mente y debería aclararte un poco.
- Como máximo, una partícula saldrá por cuadro, esto significa que una partícula puede no aterrizar en absoluto en ese cuadro.
- Una partícula puede ser representada por cualquier carácter imprimible.
- La partícula aterrizará en cualquier lugar de la caja con una probabilidad aleatoria.
- El ancho de las cajas debe ser
2n-1
del tamaño del lienzo. Entoncesn=5
, deben ser1/9
del ancho del lienzo. - La altura de las cajas debe ser la altura del lienzo.
- La partícula no debe aterrizar fuera de las cajas en absoluto.
- Si una partícula ya ha aterrizado en un lugar elegido que no importa, puede aterrizar allí nuevamente.
- Los cuadros ascii anteriores son para mayor claridad, no se deben dibujar.
- Puede elegir su propio tamaño de lienzo siempre que sea razonable. Por ejemplo, no debe tener solo unos pocos píxeles de altura. También debería poder encajar todas las cajas en él.
- Si su código duerme entre cuadros, no necesita agregarlo en su conteo de bytes.
Debe haber espacios entre cada uno de los máximos, un mínimo. Debe tener el mismo ancho que una caja, pero no caerán partículas allí. Ver el siguiente diagrama:
+---+---+---+---+---+
| | | | | |
|max|min|max|min|max|
| | | | | |
+---+---+---+---+---+
El programa debe ejecutarse hasta que se detenga manualmente.
Reglas
- Un generador de números pseudoaleatorios (pRNG) está bien.
- Las lagunas estándar están prohibidas.
- La entrada puede ser tomada por cualquier formato razonable.
- Debe enviar a STDOUT.
- Este es el código de golf, por lo que gana la respuesta más corta.
Ejemplo
El siguiente GIF es un ejemplo de ejecución n = 5
. Solo lo hice rápidamente, por lo que las posibilidades pueden ser un poco bajas.