スレ立てるまでもない質問はここで 159匹目

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2022/02/12(土) 22:44:40.76ID:AqYcq6TN
この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。

【前スレ】
スレ立てるまでもない質問はここで 158匹目
https://mevius.5ch.net/test/read.cgi/tech/1635193843/
次スレは>>980が立てること
2022/04/24(日) 10:00:05.25ID:zr61OZd6
配列に1が30個入ってたら30/要素数の割合で1を出したいって意味かと思ったら違うのか
0、300、150、100、80・・・という割合の意味が分からないから俺には無理だ
2022/04/24(日) 10:03:30.75ID:qAz5Hesd
こんな感じでいける?

var numbers = new int[] { 0, 300, 150, 100, 80 };
var sums = new int[numbers.Length];
for (int i = 0, sum = 0; i < numbers.Length; i++)
sums[i] = (sum += numbers[i]);
int v = new Random().Next(sums[sums.Length - 1]) + 1;
int ok = sums.Length - 1, ng = -1;
while (ok - ng > 1)
{
int mid = (ok + ng) / 2;
if (sums[mid] >= v) ok = mid;
else ng = mid;
}
Console.WriteLine(ok + 1);
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況