Вам даны функции: h1 (f, * args) и h2 (f, * args)
Оба метода уже определены для вас (здесь звездочка обозначает переменное число аргументов)
f - функция, * args - список параметров, передаваемых этой функции.
h1 возвращает логическое значение: True, если функция f когда-либо останавливается при вызове на * args, и False, если нет (при условии, что на работающей машине у нее бесконечное время и память, и что интерпретатор / компилятор для языка, на котором вы пишете умеет обращаться с бесконечным временем и памятью).
Если f (* args) когда-либо сделает вызов h1 или h2, h1 выдает исключение
h2 ведет себя точно так же, как h1, за исключением того, что если f делает вызовы h1, то h2 не будет выдавать исключение
Как можно меньше символов, напишите программу, которая не требует ввода и должна выводить:
The Collatz Conjecture is {True/False}
Goldbach's Conjecture is {True/False}
The Twin Primes Conjecture is {True/False}
основываясь на обоснованности каждой из этих гипотез.
Вот ссылки в Википедии, объясняющие каждую из гипотез:
http://en.wikipedia.org/wiki/Collatz_conjecture
http://en.wikipedia.org/wiki/Goldbach%27s_conjecture
http://en.wikipedia.org/wiki/Twin_prime
Вы можете предположить, что любая большая целочисленная библиотека на любом языке, который вы выберете, будет успешно представлять произвольные большие целые числа. Другими словами, мы предполагаем, что любой язык / библиотека, способная к выражению 3**(3**10)
, также способна выражать 3**(3**(3**10))
на достаточно сложной машине.
Очевидно, что так как невозможно запустить вашу программу, пожалуйста, предоставьте объяснение того, как она работает вместе с кодом