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

看板PHP作者 (wkliu)時間16年前 (2007/10/05 17:27), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
這個方法有些小問題 ※ 引述《kaijajan (喔喔 :o)》之銘言: : 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個元素 你還必須寫一個搬移的function 把隨機選到的數字之後的全部往前搬 例如: 隨機選到 1, 把b[1]的值刪除, 還必須把b[2]一直到b[60-i] 全部往前移一個 位置, 這樣你後面的才可以用 rand(1, 60-i), 假設i是第幾次作 : 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: 61.228.76.213
文章代碼(AID): #171WDcUe (PHP)
討論串 (同標題文章)
文章代碼(AID): #171WDcUe (PHP)