Erstellen Sie ein Programm, das genau 50% der Zeit anhält . Sei originell. Die Frage mit der höchsten Abstimmung gewinnt. Mit genau meine ich, dass bei jedem Lauf eine 50% ige Chance besteht, dass es zum Stillstand kommt.
8
Erstellen Sie ein Programm, das genau 50% der Zeit anhält . Sei originell. Die Frage mit der höchsten Abstimmung gewinnt. Mit genau meine ich, dass bei jedem Lauf eine 50% ige Chance besteht, dass es zum Stillstand kommt.
Antworten:
Perl
Jedes Mal, wenn Sie dieses Programm ausführen, wird es angehalten und nicht angehalten.
quelle
JavaScript
Alternativen anhalten und nicht anhalten. (hält beim ersten Lauf an, bleibt beim zweiten nicht stehen, ...)
quelle
Python
Jedes Mal um die Schleife bricht sie mit exponentiell abnehmender Wahrscheinlichkeit. Die Chance, niemals zu brechen, ist das Produkt (1-p) (1-p / 2) (1-p / 4) ... das ~ 1/2 ist. (Obligatorischer Kommentar, dass Gleitkomma nicht genau ist.)
quelle
p=0.3078458
, um 50.00002% zu erhalten :)GolfScript
Ich weiß, dass dies keine Code-Golf- Herausforderung ist, aber ich habe es trotzdem gespielt. :) :)
Alternativ ist hier eine GolfScript-Implementierung der Lösung von Keith Randall :
Theoretisch hat dies eine Wahrscheinlichkeit von genau 1/4 + 1/8 + 1/16 + ... = 1/2 des Anhaltens. In der Praxis wird es jedoch immer irgendwann keinen Speicher mehr geben und anhalten, da der Nenner immer länger wird.
quelle
Rubin
Es gibt genau 24 ungerade Primzahlen zwischen 0 und 100, wobei die größte 97 ist. Dieser Algorithmus wählt eine zufällige ungerade Zahl innerhalb des Bereichs und wiederholt sich, bis eine Primzahl gefunden wird:
Diese spezielle Implementierung weist zwei Fehler auf:
n
, von denen 24 Primzahlen sind.n
bei jeder Iteration neu gezeichnet werden sollte, wird nur der Primalitätstest in der Schleife ausgeführt. Wenn es zuerst nicht gelingt, wird es erneut versucht - aber mit der gleichen Nummer.quelle
Ich wollte dieses Golf spielen:
Befunge - 5 Zeichen
(Ich bin nicht sicher, ob dies tatsächlich funktioniert, da ich keinen befunge Compiler bei mir habe)
quelle
BASH
Nur ein lustiges selbstmodifizierendes Skript.
Hinweis: Die leere Zeichenfolge in Anführungszeichen dient
echo -n ''
nur der Übersichtlichkeit. Sie können ohne Funktionsverlust entfernt werden.quelle
Geometry Dash 2.2 Editor Glitch - 2 Objekte
Erläuterung:
Der zufällige Auslöser schaltet zufällig die Gruppen-ID 1 oder 2 mit einer 50% igen Chance um (deaktiviert sie).
Das lila Pad befindet sich im umgekehrten Modus (dh wenn der Würfel ihn berührt, bewegt sich der Würfel rückwärts, was für immer und ewig nach links geht.).
Da das lila Pad die Gruppen-ID 2 hat, besteht eine 50% ige Chance, dass es deaktiviert wird, was bedeutet, dass der Würfel es bis zum Ende des Levels passieren kann, was zum Stillstand kommt.
So reproduzieren Sie dies:
Das lila Pad befindet sich im umgekehrten Modus und hat die Gruppen-ID 1.
Innerhalb des zufälligen Auslösers.
quelle
C.
quelle
Etwas verschleierte Lösung:
Haskell
Python
Die gleiche Lösung in Python ausgedrückt:
Erläuterung
quelle
INTERCAL , 59 Bytes
Probieren Sie es online aus!
COME FROM COMING FROM
macht eine Endlosschleife, aber es besteht eine 50% ige Chance, zum Ende des Programms zu springen.quelle
TI-Basic
quelle
round(
istround(value,# of decimal places)
, und das zweite Argument ist standardmäßig 9.C.
quelle
main
die Register aus Sicherheitsgründen in 0 initialisiert werden).Python, 48
quelle
Perl
Kein Code Golf, also könnte ich unlesbaren Code vermeiden (weil das, was er tut, wichtiger ist). Während der Kompilierungsphase wird zufällig eine Funktion deklariert. Wenn es deklariert wird,
double
wird ein regulärer Ausdruck als Argument abgerufen. Wenn es nicht deklariert wird,double
ist es ein Barwort, und Perl teilt es3
endlos durch. Dies missbraucht Perls Bareword-Analyse, um Parser dazu zu bringen, denselben Code auf zwei verschiedene Arten zu analysieren.quelle
<> <, 5 Bytes und ein wunderschönes 2x2 Quadrat
x
sendet den Befehlszeiger in eine zufällige Richtung; Wenn es nach links oder rechts sendet, wird die IP getroffen; und beenden. Wenn es nach oben oder unten geht, bleibt die IP in der Endlosschleife stecken><
und wird zwischen den beiden hin und her gesendet.quelle
<><
tho, es heißt><>
lol (es sei denn, es gibt einen, von dem<><
ich noch nichts gehört habe)<
(da sich der Zeiger umgibt). Es wird kein 2x2-Quadrat mehr sein, aber es wird schön gespielt. c:Java
Diese Selbst ändert den Code zu wechseln die
== 1
zu== 0
und zurück, es ist Lauf jedes Mal. Speichern Sie den Code nur mit Zeilenumbrüchen, da sonst der Versatz falsch ist.Dies
args.length
dient nur dazu, Compiler-Optimierungen zu verhindern.quelle
Genau 50% der Zeit?
OBJ-C
quelle
Haskell
Läuft in zwei Intervallen mit einer Länge von jeweils 1 Sekunde (ausgewählt, da 1 Sekunde die SI-Einheit für die Zeit ist). Hält innerhalb von 50% der Intervalle an. 50% der laufenden Sekunden werden nicht angehalten, die anderen 50%. Funktioniert nur in GHC.
quelle
Shell-Skript
Dieses Skript blockiert .md5sum-Dateien in den aktuellen und untergeordneten Verzeichnissen.
quelle
GTB
Ich weiß, dass dies kein Code-Golf ist, aber ich habe mich trotzdem dazu entschlossen, Golf zu spielen.
quelle
C ++
Jeder Lauf wird angehalten, wenn der vorherige Lauf dies nicht getan hat.
quelle
Windows-Befehlsskript
Dieses Skript hängt Code an sich selbst an, der letztendlich bei jedem Lauf 'x' wechselt.
quelle
Java
quelle
Math ++
quelle
Python 2 , 54 Bytes
Probieren Sie es online aus!
Das Halteverhalten ist abhängig von der aktuellen Zeit.
quelle