Crie um programa que pare exatamente 50% do tempo. Seja original. A pergunta mais votada vence. Por exatamente, quero dizer que em cada corrida há 50% de chance de ela parar.
8
Crie um programa que pare exatamente 50% do tempo. Seja original. A pergunta mais votada vence. Por exatamente, quero dizer que em cada corrida há 50% de chance de ela parar.
Respostas:
Perl
Cada vez que você executa esse programa, ele para e não para.
fonte
Javascript
Alternativas parando e não parando. (pára na primeira corrida, não pára na segunda, ...)
fonte
Pitão
Cada vez que o loop é interrompido, a probabilidade diminui exponencialmente. A chance de nunca quebrar é o produto (1-p) (1-p / 2) (1-p / 4) ... que é ~ 1/2. (Comentário obrigatório sobre o ponto flutuante não ser exato.)
fonte
p=0.3078458
para obter 50,00002% :)GolfScript
Eu sei que este não é um desafio de código-golfe , mas eu joguei de qualquer maneira. :)
Como alternativa, aqui está uma implementação do GolfScript da solução de Keith Randall :
Em teoria, isso terá exatamente uma probabilidade de 1/4 + 1/8 + 1/16 + ... = 1/2 de interrupção. Na prática, porém, sempre acabará a memória e a interrupção, porque o denominador fica cada vez mais longo.
fonte
Rubi
Existem exatamente 24 números primos ímpares entre 0..100, o maior sendo 97. Esse algoritmo escolhe um número ímpar aleatório dentro do intervalo e se repete até encontrar um primo:
Esta implementação específica possui dois erros:
n
, dos quais 24 são primos.n
era para ser redesenhado em cada iteração, apenas o teste primality é executado no circuito. Se a princípio não der certo, tentará novamente - mas com o mesmo número.fonte
Tive vontade de jogar golfe:
Befunge - 5 caracteres
(Não tenho certeza se isso realmente funciona, pois não tenho um compilador antes de mim)
fonte
BATER
Apenas um script auto-modificado e divertido.
Nota: a string entre aspas vazia
echo -n ''
é apenas para maior clareza. Eles podem ser removidos sem perda de funcionalidade.fonte
Geometry Dash 2.2 Editor Glitch - 2 objetos
Explicação:
O gatilho aleatório alterna aleatoriamente (desativa) o ID do grupo 1 ou 2 com 50% de chance.
O teclado roxo está no modo reverso (o que significa que, se o cubo tocá-lo, o cubo se move para trás, o que vai para a esquerda para todo o sempre.).
Como o bloco roxo possui o ID do grupo 2, ele tem 50% de chance de ser desativado, o que significa que o cubo pode passar por ele até o final do nível, o que será interrompido.
Como reproduzir isso:
O teclado roxo está no modo reverso e possui o ID do grupo 1.
Dentro do gatilho aleatório.
fonte
C
fonte
Solução um pouco ofuscada:
Haskell
Pitão
A mesma solução expressa em Python:
Explicação
fonte
INTERCAL , 59 bytes
Experimente online!
COME FROM COMING FROM
faz um loop sem fim, mas há 50% de chance de pular para o final do programa.fonte
TI-Basic
fonte
round(
éround(value,# of decimal places)
, e o segundo argumento é 9C
fonte
main
, em , os registros são inicializados como 0 por razões de segurança).Python, 48
fonte
Perl
Não como código de golfe, para evitar código ilegível (porque o que ele faz é mais importante). Declara aleatoriamente uma função durante a fase de compilação. Se for declarado,
double
obtém expressão regular como argumento. Se não for declarado,double
é uma palavra de baralho, e Perl a divide por3
infinitamente. Isso abusa da análise de palavras de barras do Perl, para que o analisador analise o mesmo código de duas maneiras diferentes.fonte
<> <, 5 bytes e um belo quadrado 2x2
x
envia o ponteiro da instrução em uma direção aleatória; Se enviar para a esquerda ou direita, o IP será atingido; e terminar. Se subir ou descer, o IP ficará preso no><
loop infinito , sendo enviado para frente e para trás entre os dois.fonte
<><
tho, ele é chamado><>
lol (a menos que há um chamado<><
eu não ouvi de)<
(porque o ponteiro envolve); não será mais um quadrado 2x2, mas será bem jogado c:Java
Esta auto-modifica o código para alternar o
== 1
para== 0
e volta, cada vez que ele é executado. Salve o código apenas com novas linhas ou o deslocamento estará errado.O
args.length
é apenas para evitar otimizações do compilador.fonte
Exatamente 50% do tempo?
OBJ-C
fonte
Haskell
É executado por dois intervalos, cada um com 1 segundo de duração (escolhido porque 1 segundo é a unidade SI para o tempo). Pára dentro de 50% dos intervalos. Portanto, 50% dos segundos em execução não serão interrompidos, os outros 50% serão interrompidos. Funciona apenas no GHC.
fonte
Shell Script
esse script clobber arquivos .md5sum nos diretórios atual e filho.
fonte
GTB
Eu sei que isso não é código-golfe, mas eu decidi jogar de qualquer maneira.
fonte
C ++
Cada corrida será interrompida se a corrida anterior não o fizer.
fonte
Script de Comando do Windows
Esse script anexará o código a si mesmo, que alterna 'x' em cada execução.
fonte
Java
fonte
Math ++
fonte
Python 2 , 54 bytes
Experimente online!
O comportamento de parada depende do horário atual.
fonte