プログラミング詳しい人ちょっときてえええええええええええええええ

1 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 14:54:29.703 ID:dhboYsf00
0~99の乱数で判定して

int aに1~5を入れたい

1の確率を最も高くして、順に5の確率を最も低くしたい

どうする?

2 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 14:55:36.266 ID:h2uoqnvV0
仕様がプログラム寄り過ぎる
分かりやすく説明して
4 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 14:56:32.045 ID:dhboYsf00
>>2
レア度1~5で5の確率を最も低くしたい
3 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 14:55:40.774 ID:El0qls1ip
出た数値に係数をかけて特定の値に達した時点で変数に格納する
5 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 14:56:56.666 ID:dhboYsf00
>>3
その計算式は?
7 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 14:58:23.977 ID:El0qls1ip
>>5
式書くなら仕様いるわ
8 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 14:59:09.527 ID:dhboYsf00
>>7
仕様は>>1
6 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 14:58:17.355 ID:dhboYsf00
プログラミング詳しい人いないの?
12 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:02:27.977 ID:/YSchYXW0
美しくないとか言い出すなら人に求めるな
14 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:03:00.992 ID:Evq/2Lac0
先に1~5の確率を決めないと
16 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:04:04.305 ID:dhboYsf00
>>14
1が高くて順に5が低ければどんなんでもいい
15 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:03:42.276 ID:D/wfIEiR0
このスレここからめっちゃ面白くなるよ
17 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:04:27.910 ID:dhboYsf00

こういうイメージ

18 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:05:17.694 ID:HKqAbCDqd
int a
↑これやめろ
19 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:05:47.291 ID:AOoaT1sC0
100要素の配列に1~5を求める数ずつ入れておけば余裕
20 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:06:25.227 ID:dhboYsf00
>>19
美しくない
だめ
23 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:08:04.127 ID:5eAB+gty0
割り算をする、ハイ論破
24 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:08:21.554 ID:h2uoqnvV0
ごめん適当に書きすぎたからやっぱ無理かも
25 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:08:28.575 ID:AOoaT1sC0
一般的にやるなら、分布関数fに対して積分関数Fを定義して、その逆関数を使えばいいだけだな
27 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:10:40.694 ID:dhboYsf00
>>25
式で書いて
29 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:12:01.694 ID:AOoaT1sC0
>>27
1が出る確率が5/15、2が出る確率が4/15……5が出る確率が5/15でいいのか?
32 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:14:38.834 ID:dhboYsf00
>>29
おk
5が1/15で
35 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:26:36.624 ID:AOoaT1sC0
>>32
おっとすまん、そこはただのミスだ

うーん……積分関数と逆関数求めるのめんどくさいな
素直にforループで累積値配列を求めて二分探索するのが一番だな

31 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:12:42.103 ID:EiDbijq/0
>>1が一番プログラミングに詳しい説
36 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:26:51.891 ID:UNVX0iRed
確率分布が線形なら積分して二次関数にぶっ込んでやればいいんかな
37 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:30:10.384 ID:dhboYsf00
あー
もう正解に辿りついてしまった
38 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:30:59.739 ID:dhboYsf00
r < a^3
39 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:32:00.494 ID:dhboYsf00
こんな簡単なのすぐ出てこないって・・・
お前ら・・・
42 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:35:32.406 ID:dhboYsf00
r > a^3

こうか

43 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:36:16.450 ID:dhboYsf00
r < (6 – a)^3

こうだな

45 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:40:14.098 ID:AOoaT1sC0
まあ正確にはrが0~99だから、(6-i)*(6-i)*4か
48 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:42:21.277 ID:dhboYsf00
>>45
なるほど
47 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:41:19.804 ID:jGcbn0uz0
haskellで乱数の実装めんどいからなー
どうするといいかなー
49 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:44:42.031 ID:8N4vzlwId
いっち性格悪いよね
51 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:46:33.014 ID:dhboYsf00
>>49
これが>>2で出てほしかったな

r < (6-a)^2*4

54 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:48:50.538 ID:CriD1nEna
>>51
こんなレスするぐらいのゴミなら自分で考えなよ
53 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:48:05.630 ID:dhboYsf00
そもそも2乗する意味ないな

r < (6-a)*20

これでいいか

56 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:49:17.899 ID:AOoaT1sC0
>>53
それ全部同じ確率にならね?
55 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:48:57.665 ID:dhboYsf00
いやていうかこれ間違ってるか
58 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:50:18.477 ID:dhboYsf00
あれ全部間違ってる気がしてきた

求めるのはaなんだよ
判定にa使うのはだめだ

61 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:52:10.519 ID:AOoaT1sC0
>>58
全てのAでチェックすればよくね? それが嫌なら結局バイナリサーチだ
まあ素直に√とか使ってやってもいいけど
60 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:51:23.837 ID:dhboYsf00
a = ほにゃらな * r

みたいな感じで

62 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:52:45.215 ID:D/wfIEiR0
ごめん
このスレ面白くなるって言ったけど
あれ嘘なんだ
66 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 15:59:47.521 ID:dhboYsf00
配列に1~5の確率入れてループさせるわ
68 名前:ひみつの名無しさん 投稿日時:2020/10/25(日) 16:03:25.581 ID:CriD1nEna
あとは自分で考えろバーカ

コメント

タイトルとURLをコピーしました