Dies ist eine Code-Golf-Herausforderung, an die ich mit mathematischer Neigung dachte. Die Herausforderung besteht darin, den kürzestmöglichen Code so zu schreiben, dass offen ist, ob der Code terminiert oder nicht. Ein Beispiel für das, was ich meine, könnte der folgende Teil des Python-Codes sein, der von einer Antwort auf diese Frage von cs stackexchange angepasst wurde .
def is_perfect(n):
return sum(i for i in range(1, n) if n % i == 0) == n
n = 3
while not is_perfect(n):
n = n + 2
Mathematiker vermuten, dass es keine ungeraden perfekten Zahlen gibt, aber es wurde nie bewiesen, sodass niemand weiß, ob dieser Code jemals enden wird. Können Sie sich andere Codeteile ausdenken (die sich möglicherweise auf andere offene Probleme wie die Collatz-Vermutung oder die Doppelprimus-Vermutung stützen), die kürzer sind, für die jedoch nicht bekannt ist, ob sie enden oder nicht?
Bearbeiten: Einige Leute haben eine gute Zusatzregel vorgebracht - Die Lösungen für die Frage sollten deterministisch sein. Obwohl es noch interessanter sein könnte, wenn Sie kürzere Lösungen mit Nichtdeterminismus finden könnten. In diesem Fall lautet die Regel, ein Snippet zu finden, für das die Wahrscheinlichkeit der Beendigung unbekannt ist.
n=3
while sum(k*(n%k<1)for k in range(1,n))-n:n+=2
.