A 回答 (3件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
$a=array_merge(
array_fill(1,3,1),
array_fill(1,9,2),
array_fill(1,72,3),
array_fill(1,316,4)
);
shuffle($a);
while(($n=array_shift($a))){
print $n." ";
if($n==1) break;
}
No.1
- 回答日時:
以下のようにしてください。
<?php
$rank1 = 0;
$rank2 = 0;
$rank3 = 0;
$rank4 = 0;
$ctr = 0;
srand(time());
while(TRUE){
$n = rand(1,10000);
$ctr++;
switch($n){
case $n <= 75:
$rank1++;
break;
case $n <= 300:
$rank2++;
break;
case $n <= 2100:
$rank3++;
break;
default:
$rank4++;
break;
}
if($ctr==100000) break;
if ($rank1 > 0) break;
}
printf("rank1=%d rank2=%d rank3=%d rank4=%d ctr=%d\n",$rank1,$rank2,$rank3,$rank4,$ctr);
printf("rank1 %4.2f%%\n",100*$rank1/$ctr);
printf("rank2 %4.2f%%\n",100*$rank2/$ctr);
printf("rank3 %4.2f%%\n",100*$rank3/$ctr);
printf("rank4 %4.2f%%\n",100*$rank4/$ctr);
?>
実行結果
rank1=1 rank2=0 rank3=17 rank4=57 ctr=75
rank1 1.33%
rank2 0.00%
rank3 22.67%
rank4 76.00%
次に
if ($rank1 > 0) break;の行をコメントアウトして実行してください。
以下のような実行結果になります。
rank1=776 rank2=2244 rank3=17980 rank4=79000 ctr=100000
rank1 0.78%
rank2 2.24%
rank3 17.98%
rank4 79.00%
1等が0.75%、2等が2.25%、3等が18.00%、4等が79.0%付近の確率で実行されているのが判ります。
不明点は補足してください。
この回答へのお礼
お礼日時:2021/06/07 13:19
回答ありがとうございます!
自分が考えていたプログラムと全く違っていたのでびっくりです。(ここまで思い付きませんでした)
ありがとうございます!作成してみます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 3 2022/10/04 15:07
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- Visual Basic(VBA) VBAプログラム初心者です。 以下の問題のプログラムを表記してみたのですが、実行するためには、どこを 4 2023/01/19 20:04
- その他(プログラミング・Web制作) 大学一年でVBAのプログラミングを勉強しているものです。来週の情報の授業で以下の問題のプログラムを勉 4 2023/01/19 16:15
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- Visual Basic(VBA) Vba UserFormを前面に出す方法を教えてください 1 2023/08/17 11:08
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
- C言語・C++・C# 1. 仮想CPU「exmini」を使用して,「$dataからn減算する」プログラムを作成してください 2 2022/07/04 17:49
- その他(プログラミング・Web制作) Pythonでexcelのvbaを作成、実行する方法について Pythonで表の自動集計プログラムを 3 2022/07/09 09:58
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語の配列をPush(追加)する...
-
cakephpでのトランザクション処...
-
行列
-
CArrayの要素としてCStringArra...
-
濁点のソート
-
2つの連想配列を比較して一致す...
-
Texでの数式
-
csvの内容を行単位で削除したい
-
配列をループでたくさん宣言し...
-
行数が30万件ほどあるCSVから、...
-
多次元配列の中で条件に合う要...
-
自動で番号を振りたい
-
テキストの処理について
-
PHPで、CSVファイルを、指定し...
-
チェックボックスが複数選択で...
-
複数ファイルで、それぞれの行...
-
PHPでテキストファイルの一部を...
-
複数行のデータのPOST処理に関して
-
TEXTAREAに書いた改行コードを...
-
プルダウンメニューにDBの内容...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語の配列をPush(追加)する...
-
行列
-
読み(あ行~わ行)ごとに分け...
-
配列の要素(value)に、変数を...
-
C言語 最大値と最小値を求めて...
-
STLのvectorで作った配列をメン...
-
特定の文からメールアドレスの...
-
MYSQLとPHPによって取得する多...
-
タグの中身だけを取り出す正規
-
Smartyで多次元配列をスマート...
-
array_intersectで空欄を比較し...
-
verilogで、配列の一部をタスク...
-
PHPでCSVを出力するさいに、ル...
-
2次元配列CSVのソート
-
array_mapの再帰処理がうまく行...
-
PHPは何故値渡しより参照渡しの...
-
テキストエリアに入力した複数...
-
CArrayの要素としてCStringArra...
-
c言語 単位行列
-
配列の添え字が小数だとどうなる?
おすすめ情報