匿名 #4669(2007/12/07 05:13 GMT) [ Matlab ] Rating0/0=0.00
所詮は浮動小数点数なので大きなnについての精度は無考慮。
primes(100)は100までの素数25個を返す。 25と決めうちしているのは気持ち悪いが、double型が正確に表わせるのは高々十数桁であり、その範囲で使うぶんにはとりあえずはOKとする。 桁数に応じた数の素数をとりだしたい場合は、第4行を次のように置き換えればよい:
if n < 6 p = primes(11); % Five smallest primes else u = n*(log(n) + log(log(n))); % An upper bound of the value of the nth prime p = primes(u); end
上界uは ピエール・デザルトの定理 による。
1 2 3 4 5
function g = goedel(n) s = num2str(n) - '0'; n = length(s); p = primes(100); g = prod(p(1:n).^s);
Rating0/0=0.00-0+
[ reply ]
匿名
#4669()
[
Matlab
]
Rating0/0=0.00
所詮は浮動小数点数なので大きなnについての精度は無考慮。
primes(100)は100までの素数25個を返す。 25と決めうちしているのは気持ち悪いが、double型が正確に表わせるのは高々十数桁であり、その範囲で使うぶんにはとりあえずはOKとする。 桁数に応じた数の素数をとりだしたい場合は、第4行を次のように置き換えればよい:
上界uは ピエール・デザルトの定理 による。
Rating0/0=0.00-0+
[ reply ]