プログラミングのお題スレ Part22 (863レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
351: デフォルトの名無しさん [] 2024/06/01(土)23:31:08.51 ID:oEZc8FHN(1)
>>348
R
https://ideone.com/x4hIYG

>>349
C (データ識別子は1か2しかないものとし、整数のエンディアンは実行環境依存とする)
https://ideone.com/aJts6n
637: デフォルトの名無しさん [sage] 02/16(日)10:58:48.51 ID:EXJYkLn8(1)
帰ったと思ったらまたやってんのw
732: デフォルトの名無しさん [] 04/02(水)19:56:31.51 ID:/hTkauy0(1)
5chのプロ 笑
753
(1): デフォルトの名無しさん [sage] 04/12(土)09:11:24.51 ID:xiQsTIG2(1)
>>712
@Wolfram
https://ideone.com/4xyb1s
761: デフォルトの名無しさん [sage] 04/17(木)00:32:14.51 ID:dz0qzhSq(3/3)
>>738
これも2025以下の素数を組み合わせて和が2025になる解を調べる方法。
解一覧を収めるベクタ以外は、固定の長さ305のベクタのみが使われている。
この長さの 305 とは2025以下~3以上の素数[2017, 2011, ... 5, 3]の数になってる。
各素数の冪乗の和 2017^e2017 + 2011^e2011 + ... + 5^e5 + 3^e3 及び積を計算していくが、
各指数のe2017などは解に不要なので使われておらず、
各冪乗の和自体も不要なので2025までの残りの数が使われていて、
固定長ベクタの値は(素数, 残りの数, ここまでの積)の3つ組となっている。
その素数を1つ使うと残りの数が減算されてて積が乗算されるのを繰り返していく。
素数2だけ特別扱いされており、残りの数の半分だけ左シフトすると解の積が出来上がる。

各if~continueが枝刈りとなっていて、残りの下限(=和の上限)や積の上限などがある
この改良版>>750では、次の素数以降の組み合わせで起き得る積の下限で枝刈りしている。
例えば7以下の素数で残り21ならば積の下限は7*7*7=343となるため、
ここまでの積に343を掛けた値が2000万(または20億)を超えていれば枝刈りできるようだ。

このアルゴリズムは作業メモリが固定で小さく常にL1キャッシュに乗り有利と思われる点と、
様々な枝刈りがしやすく処理する組み合わせを大きく減らしている点により、
他のアルゴリズムより桁違いに高速になっていると推測される。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.042s