プログラミングのお題スレ Part4
■ このスレッドは過去ログ倉庫に格納されています
> p頁とxの最小公倍数となる巻に至って剰余が0となる前に剰余が1となる巻nを求める上で、
> 剰余が p%x,2p%x,3p%x,…、1、最小公倍数%x と移り変わるとして、
> これを愚直にループで探さずに一気に収束するように検索しうる解法として ユーグリッドの互除法
> のような数学的な方法があるのか、
>>668
> 幅x頁で分割した節点の+1のところに幅m1で分割した節点があるか、
> その位置が予測可能かどうかだともいえる。
> この規則性みたいな物が定式化できれば解けるかも知れない
互除法ではないがiterationで収斂させる一つの解法を得た。計算量はかなり減るがワーストケースは($p,$x) = (333,29)の様な場合か。
>>555 Perl
sub f {
$n = 1;
$w = $p % $x;
while ($m = $p * $n % $x) {
#say "volume $n: residural=$m";
return $n if $m == 1;
$r = ($x - $m) % $w;
$s = ($x - $m - $r) / $w;
$s += 1 if $r;
$n += $s;
}
'false'
}
($p,$x) = (213,16); say f;
($p,$x) = (214,16); say f;
($p,$x) = (333,29); say f;
($p,$x) = (3,2); say f;
■ このスレッドは過去ログ倉庫に格納されています