Re: [請益] 求救!解不開啊~ 不重複抽籤的謎題!60 …

看板PHP作者 (喔喔 :o)時間18年前 (2007/10/05 17:00), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
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)
文章代碼(AID): #171Vq_Ji (PHP)
文章代碼(AID): #171Vq_Ji (PHP)