Cree un programa que se detenga exactamente el 50% del tiempo. Ser original. La pregunta más votada gana. Con exactamente quiero decir que en cada carrera hay un 50% de posibilidades de que se detenga.
8
Cree un programa que se detenga exactamente el 50% del tiempo. Ser original. La pregunta más votada gana. Con exactamente quiero decir que en cada carrera hay un 50% de posibilidades de que se detenga.
Respuestas:
Perl
Cada vez que ejecuta este programa, se detiene y no se detiene.
fuente
JavaScript
Alternativas deteniéndose y no deteniéndose. (se detiene en la primera carrera, no se detiene en la segunda, ...)
fuente
Pitón
Cada vez alrededor del ciclo se rompe con una probabilidad exponencialmente decreciente. La posibilidad de que nunca se rompa es el producto (1-p) (1-p / 2) (1-p / 4) ... que es ~ 1/2. (El comentario obligatorio sobre el punto flotante no es exacto).
fuente
p=0.3078458
para obtener 50.00002% :)GolfScript
Sé que esto no es un desafío de código de golf , pero lo jugué de todos modos. :)
Alternativamente, aquí hay una implementación de GolfScript de la solución de Keith Randall :
En teoría, esto tendrá exactamente 1/4 + 1/8 + 1/16 + ... = 1/2 probabilidad de detenerse. En la práctica, sin embargo, siempre se quedará sin memoria y se detendrá, porque el denominador se vuelve cada vez más largo.
fuente
Rubí
Hay exactamente 24 números primos impares entre 0..100, el más grande es 97. Este algoritmo elige un número impar aleatorio dentro del rango y se repite hasta que encuentra un número primo:
Esta implementación particular tiene dos errores:
n
, de los cuales 24 son primos.n
estaba destinado a ser redibujado en cada iteración, solo la prueba de primalidad se ejecuta en el bucle. Si al principio no tiene éxito, lo intentará nuevamente, pero con el mismo número.fuente
Tenía ganas de jugar al golf:
Befunge - 5 caracteres
(No estoy seguro de si esto realmente funciona ya que no tengo un compilador befunge)
fuente
GOLPETAZO
Solo un divertido script auto modificable.
Nota: las cadenas entre comillas vacías
echo -n ''
son solo para mayor claridad. Se pueden eliminar sin pérdida de funcionalidad.fuente
Geometry Dash 2.2 Glitch Editor - 2 objetos
Explicación:
El disparador aleatorio alterna aleatoriamente (deshabilita) la ID de grupo 1 o 2 con una probabilidad del 50%.
La almohadilla púrpura está en modo inverso (lo que significa que si el cubo lo toca, el cubo se mueve hacia atrás, lo que va hacia la izquierda para siempre).
Dado que la almohadilla púrpura tiene ID de grupo 2, tiene un 50% de posibilidades de desactivarse, lo que significa que el cubo puede pasar a través de ella hasta el final del nivel, lo que se detendrá.
Cómo reproducir esto:
La almohadilla púrpura está en modo inverso y tiene ID de grupo 1.
Dentro del disparador aleatorio.
fuente
C
fuente
Solución algo ofuscada:
Haskell
Pitón
La misma solución expresada en Python:
Explicación
fuente
INTERCAL , 59 bytes
Pruébalo en línea!
COME FROM COMING FROM
realiza un bucle sin fin, pero hay un 50% de posibilidades de saltar al final del programa.fuente
TI-Basic
fuente
round(
esround(value,# of decimal places)
, y el segundo argumento predeterminado es 9.C
fuente
main
, los registros se inicializan a 0 por razones de seguridad).Python, 48
fuente
Perl
No codifico el golf, por lo que podría evitar el código ilegible (porque lo que hace es más importante). Declara aleatoriamente una función durante la fase de compilación. Si se declara,
double
obtiene expresión regular como argumento. Si no se declara,double
es una palabra simple, y Perl lo divide3
sin cesar. Esto abusa del análisis de palabras simples de Perl, para que el analizador analice el mismo código de dos maneras diferentes.fuente
<> <, 5 bytes y un hermoso cuadrado de 2x2
x
envía el puntero de instrucciones en una dirección aleatoria; Si envía izquierda o derecha, la IP golpeará; y terminar. Si sube o baja, la IP se atascará en el><
bucle infinito y se enviará de ida y vuelta entre los dos.fuente
<><
tho, se llama><>
lol (a menos que haya una llamada de la<><
que no haya oído hablar)<
(porque el puntero se ajusta); ya no será un cuadrado de 2x2 pero estará muy bien golfizado c:Java
Esto auto modifica el código para alternar el
== 1
a== 0
ida y vuelta, cada vez que es dirigido. Guarde el código solo con líneas nuevas o el desplazamiento será incorrecto.Esto
args.length
es solo para evitar optimizaciones del compilador.fuente
Exactamente 50% del tiempo?
OBJ-C
fuente
Haskell
Se ejecuta durante dos intervalos, cada uno de 1 segundo de duración (elegido porque 1 segundo es la unidad SI por tiempo). Se detiene dentro del 50% de los intervalos. Entonces, el 50% de los segundos de funcionamiento no se detendrá, el otro 50% lo hará. Funciona solo en GHC.
fuente
Shell Script
este script bloqueará los archivos .md5sum en los directorios actuales y secundarios.
fuente
GTB
Sé que esto no es golf de código, pero decidí jugarlo de todos modos.
fuente
C ++
Cada ejecución se detendrá si la ejecución anterior no lo hizo.
fuente
Script de comandos de Windows
Este script agregará código a sí mismo, que en última instancia alterna 'x' en cada ejecución.
fuente
Java
fuente
Math ++
fuente
Python 2 , 54 bytes
Pruébalo en línea!
El comportamiento de detención depende del tiempo actual.
fuente