Fungsi β Gödel mengambil tiga bilangan asli sebagai argumen.
Ini didefinisikan sebagai β(x,y,z) = rem(x, 1 + (z + 1) · y) = rem(x, (z · y + y + 1) )
di mana rem (a, b) menunjukkan sisa setelah pembagian bilangan bulat oleh b.
Β Lemma sekarang menyatakan bahwa:
Untuk setiap urutan bilangan alami (k_0, k_1, ..., k_n), ada bilangan alami b dan c sedemikian rupa sehingga, untuk setiap i ≤ n, β (b, c, i) = k_i.
Gödel membutuhkan bantuan untuk menemukan b
dan c
untuk setiap masukan yang diberikan (k_0, k_1, … , k_n), k_i ∈ ℕ
.
Tulis fungsi yang membutuhkan array panjang n
, diisi dengan bilangan alami, dan memberikan kemungkinan b,c
output yang memenuhi Lemma untuk array.
Jangan mendapatkan solusi dengan kekerasan!
(Menurut pendapat saya benar-benar tidak profesional, itu adalah kekerasan ketika Anda pertama kali mendapatkan nomor dan kemudian melakukan perhitungan. Itu menebak nomor dan kemudian mencari apakah tebakan itu benar. Apa yang ingin saya kodekan di sini adalah solusi yang menghitung angka dan tidak harus memeriksa apakah mereka memenuhi lemma karena mereka dihitung untuk melakukannya.)
Bangun mereka dengan persamaan dan informasi yang diberikan. Kode terpendek menang, poin bonus jika Anda melakukannya Javascript
karena saya baru saja membahasnya:)
Contoh:
[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)
sampai menemukan yang bekerja akan menjadi kekuatan kasar, dan pendekatan yang berjalan dalam waktu linier dalam panjang input tidak akan, tetapi ada kesenjangan besar di antara mereka. Di mana garis ditarik?