Hàm Gö của Godel lấy ba số tự nhiên làm đối số.
Nó được định nghĩa là β(x,y,z) = rem(x, 1 + (z + 1) · y) = rem(x, (z · y + y + 1) )
trong đó rem (a, b) biểu thị phần còn lại sau khi chia số nguyên của a cho b.
Β Bổ đề bây giờ nói rằng:
Đối với bất kỳ chuỗi số tự nhiên nào (k_0, k_1, Mạnh, k_n), có các số tự nhiên b và c sao cho, với mọi i ≤ n, (b, c, i) = k_i.
Gôdel cần giúp đỡ để tìm b
và c
cho bất kỳ đầu vào nào (k_0, k_1, … , k_n), k_i ∈ ℕ
.
Viết hàm lấy một mảng có độ dài n
, chứa đầy các số tự nhiên và đưa ra một b,c
đầu ra có thể đáp ứng Bổ đề cho mảng.
Đừng có giải pháp bằng vũ lực!
(Theo ý kiến hoàn toàn không có lợi của tôi, đó là sức mạnh vũ phu khi bạn lần đầu tiên nhận được một số và sau đó thực hiện phép tính. Đó là đoán số và sau đó tìm xem đoán có đúng không. Điều tôi muốn được mã hóa ở đây là một giải pháp tính toán những con số và không phải kiểm tra xem chúng có đáp ứng bổ đề hay không bởi vì chúng được tính toán để làm như vậy.)
Xây dựng chúng với các phương trình và thông tin đã cho. Mã ngắn nhất sẽ thắng, điểm thưởng nếu bạn làm điều đó Javascript
bởi vì tôi chỉ đang tham gia vào nó:)
Thí dụ:
[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)
cho đến khi tìm thấy một cách hoạt động sẽ là lực lượng vũ phu, và một cách tiếp cận chạy theo tuyến tính theo thời gian theo chiều dài của đầu vào sẽ không có, nhưng có một khoảng cách lớn giữa các cặp . Đường vẽ ở đâu?