プログラミングのお題スレ Part22 (860レス)
プログラミングのお題スレ Part22 http://mevius.5ch.net/test/read.cgi/tech/1691038333/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
156: デフォルトの名無しさん [sage] 2023/11/25(土) 20:07:06.40 ID:zpqT0hBE お題:ランダムに1から9999までの整数を得た時、何回で全種類出揃うか確認せよ 擬似乱数列生成法については指定しないものとする ruby https://ideone.com/rucuHk require 'set' r = 1..9999 c = r.to_a.fill(0) s = r.to_set while !s.empty? n = rand(r) c[n - r.first] += 1 s.delete n end p c.sum ↓ 84736 http://mevius.5ch.net/test/read.cgi/tech/1691038333/156
157: デフォルトの名無しさん [] 2023/11/25(土) 22:17:37.68 ID:Al0Rw+0l >>156 R https://ideone.com/nTywN4 http://mevius.5ch.net/test/read.cgi/tech/1691038333/157
159: デフォルトの名無しさん [] 2023/11/26(日) 10:50:43.54 ID:d/KzVdDP >>156 設定があいまいなんだが shuffleとかselectとかchoice系なら 高々9999回で必ず全部出る http://mevius.5ch.net/test/read.cgi/tech/1691038333/159
160: デフォルトの名無しさん [] 2023/11/26(日) 11:41:26.07 ID:1iIVw+fD >>156 Java https://paiza.io/projects/NEIRYxOjS1MiyOOhmbhaHA http://mevius.5ch.net/test/read.cgi/tech/1691038333/160
162: デフォルトの名無しさん [] 2023/11/26(日) 13:43:11.68 ID:4uIV+oN2 >>156 lisp https://ideone.com/pYi0rj http://mevius.5ch.net/test/read.cgi/tech/1691038333/162
165: 17 [] 2023/11/27(月) 10:35:37.58 ID:VB+FhCy9 >>156 Kotlin https://paiza.io/projects/B7Eq1O1iPp-ynUyb5QGL9g こんなので良いのか?やっぱ Set とか使わずにやった方が良いかな? http://mevius.5ch.net/test/read.cgi/tech/1691038333/165
166: デフォルトの名無しさん [sage] 2023/11/27(月) 12:57:15.00 ID:lzpjbGZv >>156 Ruby >>156 の例が個別の出現回数をカウントしていたのでそれに合わせた c = [0] * 9999 9999.times { redo unless ( c[ rand(9999) ] += 1 ) == 1 } p c.sum http://mevius.5ch.net/test/read.cgi/tech/1691038333/166
167: 17 [] 2023/11/27(月) 13:09:30.74 ID:VB+FhCy9 >>156 また Kotlin https://paiza.io/projects/yYQ9bdMb0_d91607skNw4Q 今度は add ではなく remove でやるようにした。 これでその Ruby の例に近くはなるがカウントする方法は前と同じで個別にはやってない。 http://mevius.5ch.net/test/read.cgi/tech/1691038333/167
168: デフォルトの名無しさん [] 2023/11/27(月) 18:30:50.07 ID:O6HTjvgJ >>156 Perl perl -E 'for ($r = 9999; $n < $r; $_++) { $h{int(rand($r)) + 1} ||= ++$n }; say' 79596 http://mevius.5ch.net/test/read.cgi/tech/1691038333/168
169: 156 [sage] 2023/11/27(月) 20:35:49.92 ID:VuTnBSK2 >>156 c https://ideone.com/K1fD78 ・lispのひとの(>>162)をパク…参考にしました ・乱数生成部分は https://c-faq.com/lib/randrange.html からコピペしました int main() { int a[9999] = {0}, size = sizeof a / sizeof *a, sum, min, max, r, i, j, k; srand(time(0)); #define randi(size) ((int)((double)rand() / ((double)RAND_MAX + 1) * (size))) for (r = size; 0 < r; ) if (!a[randi(size)]++) r--; for (sum = min = max = a[0], i = 1; i < size; i++) { sum += a[i]; min = min < a[i] ? min : a[i]; max = a[i] < max ? max : a[i]; } printf("%d\n%f\n[%d, %d]\n", sum, (double)sum / size, min, max); for (i = min; i <= max; i++) { for (k = j = 0; j < size; j++) if (i == a[j]) k++; printf("%d\t%d\n", i, k); } return 0; } http://mevius.5ch.net/test/read.cgi/tech/1691038333/169
170: 17 [] 2023/11/28(火) 15:35:44.30 ID:cIauX08C >>156 今度はC言語 https://paiza.io/projects/c6ALnYb4rksMFGZT03mcCw 1~9999ではなく実際には0~9998でやっているが、表示する必要もないし一々1足したり後で引いたりも馬鹿らしいのでそのままにした。 http://mevius.5ch.net/test/read.cgi/tech/1691038333/170
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.053s