[過去ログ] プログラミングのお題スレ Part13 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
50
(5): 2019/02/09(土)06:52 ID:y7fm8J5o(1/2)調 AAS
なんでも放題にすればいい

お題
平方数は 256で割るとあまりの
パターンが44種類になるという。
この44種類を求める。
56: 2019/02/09(土)14:22 ID:VrkeVQvn(2/2)調 AAS
>>50 その44種(mod256)の中に x%256 が一致するか
python

mod256=sorted({(i**2)%256 for i in range(256)})
x=123*123
print(x%256 in mod256)
# True

これでmod の話が理解できた。 要は完全な平方数じゃないのは平方根の計算をしないと言う話ね。
57: 2019/02/09(土)15:28 ID:1XyVHoA8(1/2)調 AAS
>>50 Perl5

%a = map{$_=>1} map{$_*$_%256} 0..256;
@a = keys %a;
print "@a\n";

実行結果
~ $ perl 13_50.pl | wc -w
44
$ perl 13_50.pl
137 89 161 57 1 4 100 17 36 49 121 64 68 144 201 177 65 185 16 9 193 169 129
105 196 132 25 73 249 209 33 233 225 97 41 81 241 164 145 228 217 0 153 113
58: 2019/02/09(土)17:42 ID:1XyVHoA8(2/2)調 AAS
>>50 Perl5 その2

use List::MoreUtils 'uniq';
@a = uniq map{$_*$_%256} 0..255;
print "@a\n";
59
(2): 2019/02/09(土)18:17 ID:HLblHrgV(1)調 AAS
>>49 有難う。
python だが、
# 256, 9, 5, 7, 13, 17 97
のmodであらかじめカットしたら、5倍くらい早くなった。

因みに >>50 のお題で
mod256=sorted({(i**2)%256 for i in range(256)})

modn = lambda n:set((i**2)%n for i in range(n))
mod256 = modn(256)

では下のsetを使った方が3割くらいスピードが速かった。
61: 2019/02/10(日)06:54 ID:qszHu1wC(1)調 AAS
>>50 J
64個の平方数を調べれば44種類のパターンはそろうようだ。
/:~ ~. 256| *: i. 64
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.031s