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

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
156
(10): 2023/11/25(土)20:07 ID:zpqT0hBE(1) AAS
お題:ランダムに1から9999までの整数を得た時、何回で全種類出揃うか確認せよ
擬似乱数列生成法については指定しないものとする

ruby
外部リンク:ideone.com
require 'set'
r = 1..9999
c = r.to_a.fill(0)
省9
157
(1): 2023/11/25(土)22:17 ID:Al0Rw+0l(1) AAS
>>156
R
外部リンク:ideone.com
159: 2023/11/26(日)10:50 ID:d/KzVdDP(1) AAS
>>156
設定があいまいなんだが
shuffleとかselectとかchoice系なら
高々9999回で必ず全部出る
160: 2023/11/26(日)11:41 ID:1iIVw+fD(1) AAS
>>156
Java
外部リンク:paiza.io
162
(1): 2023/11/26(日)13:43 ID:4uIV+oN2(1) AAS
>>156 lisp
外部リンク:ideone.com
165: 17 2023/11/27(月)10:35 ID:VB+FhCy9(2/3) AAS
>>156
Kotlin
外部リンク:paiza.io

こんなので良いのか?やっぱ Set とか使わずにやった方が良いかな?
166: 2023/11/27(月)12:57 ID:lzpjbGZv(1) AAS
>>156 Ruby
>>156 の例が個別の出現回数をカウントしていたのでそれに合わせた

c = [0] * 9999
9999.times {
redo unless ( c[ rand(9999) ] += 1 ) == 1
}
p c.sum
167: 17 2023/11/27(月)13:09 ID:VB+FhCy9(3/3) AAS
>>156
また Kotlin
外部リンク:paiza.io

今度は add ではなく remove でやるようにした。
これでその Ruby の例に近くはなるがカウントする方法は前と同じで個別にはやってない。
168: 2023/11/27(月)18:30 ID:O6HTjvgJ(1) AAS
>>156
Perl
perl -E 'for ($r = 9999; $n < $r; $_++) { $h{int(rand($r)) + 1} ||= ++$n }; say'
79596
169: 156 2023/11/27(月)20:35 ID:VuTnBSK2(1) AAS
>>156 c
外部リンク:ideone.com
・lispのひとの(>>162)をパク…参考にしました
・乱数生成部分は 外部リンク[html]:c-faq.com からコピペしました
int main() {
int a[9999] = {0}, size = sizeof a / sizeof *a, sum, min, max, r, i, j, k;
srand(time(0));
省14
170: 17 2023/11/28(火)15:35 ID:cIauX08C(1) AAS
>>156
今度はC言語
外部リンク:paiza.io

1~9999ではなく実際には0~9998でやっているが、表示する必要もないし一々1足したり後で引いたりも馬鹿らしいのでそのままにした。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.037s