Gödel'in β işlevi argüman olarak üç doğal sayı alır.
Olarak tanımlanır β(x,y,z) = rem(x, 1 + (z + 1) · y) = rem(x, (z · y + y + 1) )
burada rem (a, b), a'nın b tamsayı bölünmesinden sonraki geri kalan kısmı belirtir.
Β Lemma şimdi şöyle diyor:
Herhangi bir doğal sayı dizisi için (k_0, k_1,…, k_n), her i ≤ n, β (b, c, i) = k_i olacak şekilde b ve c doğal sayıları vardır.
Gödel'in herhangi bir girdiyi bulmak b
ve bulmak c
için yardıma ihtiyacı var (k_0, k_1, … , k_n), k_i ∈ ℕ
.
Bir dizi uzunluğu alan n
, doğal sayılarla dolu olan b,c
ve dizi için Lemma'yı yerine getiren olası bir çıktı veren bir işlev yazın .
Kaba kuvvetle çözüm elde etmeyin!
(Benim tamamen işsiz görüşüme göre, önce bir sayı almak ve sonra hesaplama yapmak kaba kuvvettir. Bu sayı tahmin ve sonra tahmin doğru olup olmadığına bakmak. Burada kodlamak istiyorum ne hesaplayan bir çözümdür rakamları vardır ve bunu yapmak için hesaplandıklarından, kemiği yerine getirip getirmediklerini kontrol etmek zorunda değildir.)
Bunları verilen denklemler ve bilgilerle inşa edin. En kısa kod kazanır, eğer yaparsanız bonus puan kazanırsınız Javascript
çünkü sadece içine giriyorum:)
Misal:
[5, 19, 7, 8] -> (1344595, 19)
1344505 % (1 + (0 + 1) * 19) = 5
1344505 % (1 + (1 + 1) * 19) = 19
1344505 % (1 + (2 + 1) * 19) = 7
1344505 % (1 + (3 + 1) * 19) = 8
(b, c)
işe yarayan bir kuvvet bulana kadar tüm çiftler arasında yinelenen bir yaklaşım ve girdinin uzunluğu boyunca doğrusal olarak çalışan bir yaklaşım olmazdı, ancak bunlar arasında büyük bir boşluk var. Çizgi nerede çizilir?