帮助哥德尔实现β函数[关闭]


13

哥德尔的β函数采用三个自然数作为参数。

定义为 β(x,y,z) = rem(x, 1 + (z + 1) · y) = rem(x, (z · y + y + 1) )

其中rem(a,b)表示a除以b的整数后的余数。

β引理现在指出:

对于任何自然数序列(k_0,k_1,…,k_n),都有自然数b和c使得对于每个i≤n,β(b,c,i)= k_i。

哥德尔需要帮助找到bc对于任何给定的输入(k_0, k_1, … , k_n), k_i ∈ ℕ


编写一个函数,该函数接受一个长度为length的数组n,并用自然数填充,并给出b,c满足该数组的引理的可能输出。


不要用蛮力获得解决方案!

(根据我完全不专业的观点,当您首先获得一个数字然后进行计算时,这是蛮力的。这是在猜测数字,然后看猜测是否正确。我想在这里编码的是一种解决方案数,并且不必检查它们是否满足引理,因为它们是故意这样做的。)

用给出的方程式和信息构造它们。最短的代码获胜,如果您这样做,将获得加分,Javascript因为我只是参与其中:)


例:

[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

5
欢迎来到PPCG!这是一个很好的第一个问题,但是我建议添加一些测试用例以使其更加清晰。
Laikoni '17

4
@Tweakimp即便如此,一个可行的示例仍可以帮助澄清相当正式的定义。
Martin Ender's


1
尚不清楚什么才算是“蛮力”。显然,一种遍历所有对(b, c)直到找到起作用的对的方法将是蛮力的,而在输入的长度上按时间线性运行的方法则不是强力方法,但是两者之间有很大的差距。画线在哪里?
彼得·泰勒

6
有人说过Beta吗?
Beta Decay's

Answers:


3

JavaScript(ES6),104个字节

a=>[c=a.reduce(c=>c*++i,Math.max(...a),i=0),a.reduce(g=(x,k)=>x%m-k?g(x+n,k):(n*=m,m+=c,x),0,n=1,m=c+1)]

[c, b]以数组形式返回。它返回的解决方案不是最小的,c但我认为b对于给定的解决方案是最小的c。对于120个字节,这将返回给定的in c和in 最小的解:bc

f=(a,c=1,b=a.reduce(g=(x,k)=>x%m-k?d--?g(x+n,k):0/0:n%m?g(x,k,n+=o):(o=n,d=m+=c,x),0,o=n=1,d=m=c+1))=>1/b?[b,c]:f(a,c+1)

无高尔夫球的最小解决方案求解器:

function godel(a) {
    for (c = 0;; c++) {
        var b = 0, n = 1, i = 0;
        for (;;) {
            var m = c * i + c + 1;
            // Increase b until β(b,c,i) = a[i]
            // Adding n won't change output for smaller i
            for (j = 0; j < m; j++) if (b % m != a[i]) b += n;
            if (j == m) break; // couldn't find a remainder, c too low
            i++;
            if (i == a.length) return [b, c]; // Result!
            // Next time we want adding n to b not to change β(b,c,i)
            for (j = 1; n * j % m != 0; j++);
            n *= j;
        }
    }
}

1
大!您会这​​么友善并注释代码吗?:)
Tweakimp
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.