2016-10-03 63 views
0

我想編寫簡單的頁面,這將允許我生成非重複數字。使用PHP或Javascript生成非重複數字

我有下面的代碼:

function rand (min, max, except) { 
    var number = except; 
    while (number == except) { 
     number = Math.floor(Math.random() * (max + 1 - min) + min); 
    } 
    return number; 
} 

var test = []; 
while (test.length < 1) { 
    test.push(rand(100, 500)); 
} 
alert(test); 

它工作正常,唯一的一點是,它會產生隨機數,但在我點擊例如「提交」按鈕,它會生成新的隨機數字,與前一次請求時生成的數字相同。

我需要的是 - 頁面應該以某種方式保存已經生成的數字,並在下次生成數字時,它不應該再次使用它。

任何想法如何做到這一點?


也許有一些功能,創建一個基於時間/日期隨機數等

+0

當你calll'蘭特()'你沒有通過' except'。所以你的rand()是做什麼的? –

+0

您必須記錄已經生成的數字。一個數據庫,一個文件,一些東西。或者,您也可以傳入前一個生成的數字的最大值,從那裏開始並將'max_num'的一個新範圍設置爲'larger_than_max'。重複,直到無限。 – Andrew

+0

@Andrew mySQL DB可以使用。你可以通過如何使用usinjg DB來解決問題嗎? – Roman

回答

0

試試這個代碼:

<?php 

    function randomGen($min, $max, $quantity) 
    { 
     $numbers = range($min, $max); 
     shuffle($numbers); 
     return array_slice($numbers, 0, $quantity); 
    } 

    print_r(randomGen(0,20,20)); //generates 20 unique random numbers 

?>