Re: [請益] 求救!解不開啊~ 不重複抽籤的謎題!60 …
1.產生2個陣列,大小分別為40(array a)及60(array b)
2.將1-60依序填入array b(填入方法隨便,依序填最簡單)
3.從array b中隨機選取一個元素( rand(1, 60) )並填到array a的第一個元素
4.刪除array b中剛剛選中的元素
5.此時array a有一個值介於1-60之間
而array b只剩59個元素
6.從array b中再取一個元素( rand(1, 59) )填到array a的第二個元素
7.刪除選中的元素
重複6 7即可得到你要的結果
※ 引述《aptx1596 (maddog)》之銘言:
: 程式碼如下,陣列中之數,一直都會有重複耶!
: 該怎嚜解決啊~想了3天3業還是解不開耶~
: PS:不是作業,只是想挑戰一下!!
: --------------------------------------------------------------------------
: --------------------------------------------------------------------------
: --------------------------------------------------------------------------
: <?
: /****************************************
: 自1~60取隨機數,放進大小為40格的陣列之中,
: 數字不可重複。有20支籤不中。
: ****************************************/
: //--------[取隨機基數]-------------------
: list($m, $t) = explode(" ",microtime());
: $d = (double) $m -(double) $t*1359;
: srand($d);
: //---------------------------------------
: /*************************************
: 1.建立陣列
: 2.隨機產生數字
: 3.檢查陣列內是否已有相同數字
: 3.1[有]回到 2 再次產生數字,接 3
: 3.2[無]數字PUSH進陣列,接 2
: 4.檢查是否滿400個了
: **************************************/
: $arr=array();
: $rd=rand(1,60);
: array_push($arr,$rd);
: do{
: $rd=rand(1,60);
: foreach($arr as $value)
: {
: if($rd == $value)
: {break;}
: else
: {
: array_push($arr,$rd);
: $arr_num++;
: break;
: }
: }
: }while(count($arr) <= 40);
: //-------------[列印陣列]-------------------
: foreach($arr as $key => $value)
: {
: echo "\$arr[{$key}] = {$value}<BR>\n";
: }
: $sss=array_count_values($arr);
: foreach($sss as $key => $value)
: {
: echo"{$key} = {$value}個<BR>";
: }
: ?>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.210.60.5
※ 編輯: kaijajan 來自: 218.210.60.5 (10/05 17:01)
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章