Sie erhalten die Funktionen: h1 (f, * args) und h2 (f, * args)
Beides sind für Sie bereits definierte Methoden (hier kennzeichnet der Stern eine variable Anzahl von Argumenten)
f ist eine Funktion, * args ist eine Liste von Parametern, die an diese Funktion übergeben werden sollen
h1 gibt einen booleschen Wert zurück: True, wenn die Funktion f beim Aufruf von * args immer anhält, und False, wenn dies nicht der Fall ist (vorausgesetzt, der Computer hat unendlich viel Zeit und Speicher und der Interpreter / Compiler für die Sprache, in der Sie schreiben) weiß, wie man mit unendlicher Zeit und unendlichem Gedächtnis umgeht).
Wenn f (* args) jemals h1 oder h2 aufrufen würde, löst h1 eine Ausnahme aus
h2 verhält sich genauso wie h1, außer dass h2 keine Ausnahme auslöst, wenn f h1 aufruft
Schreiben Sie in möglichst wenigen Zeichen ein Programm, das keine Eingabe benötigt und ausgeben soll:
The Collatz Conjecture is {True/False}
Goldbach's Conjecture is {True/False}
The Twin Primes Conjecture is {True/False}
basierend auf der Gültigkeit jeder dieser Vermutungen.
Hier sind Wikipedia-Links, die jede der Vermutungen erklären:
http://en.wikipedia.org/wiki/Collatz_conjecture
http://en.wikipedia.org/wiki/Goldbach%27s_conjecture
http://en.wikipedia.org/wiki/Twin_prime
Sie können davon ausgehen, dass jede Bibliothek mit großen Ganzzahlen in der von Ihnen gewählten Sprache beliebige große Ganzzahlen darstellen kann. Mit anderen Worten, wir gehen davon aus, dass jede Sprache / Bibliothek, die in der Lage ist, sich auszudrücken, 3**(3**10)
sich auch 3**(3**(3**10))
auf einer ausreichend leistungsfähigen Maschine ausdrücken kann.
Da es unmöglich ist, Ihr Programm auszuführen, erläutern Sie bitte, wie es zusammen mit dem Code funktioniert