程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP函數:生成N個不重復的隨機數,php 隨機數

PHP函數:生成N個不重復的隨機數,php 隨機數

編輯:關於PHP編程

PHP函數:生成N個不重復的隨機數,php 隨機數


PHP函數:生成N個不重復的隨機數


思路:將生成的隨機數存入數組,再在數組中去除重復的值,即可生成一定數量的不重復隨機數。

 

程序:

<?php
/*
* array unique_rand( int $min, int $max, int $num )
* 生成一定數量的不重復隨機數
* $min 和 $max: 指定隨機數的范圍
* $num: 指定生成數量
*/

function  unique_rand($min,$max,$num){
    $count = 0;
    $return_arr = array();
    while($count < $num){
        $return_arr[] = mt_rand($min,$max);
        $return_arr = array_flip(array_flip($return_arr));
        $count = count($return_arr);
    }
    shuffle($return_arr);
    return $return_arr;
}

補充說明:

  1、生成隨機數使用了mt_rand()函數,這個函數比rand()函數快4倍;

  2、去除數組重復值時采用了“翻翻法”,就是用array_flip()把數組的key和value交換兩次。比用array_unique()快很多。


matlab怎產生不重復的隨機數?

rand(1,8)*100
ans =
Columns 1 through 7
81.4724 90.5792 12.6987 91.3376 63.2359 9.7540 27.8498
Column 8
54.6882

用excel生成N個隨機數,怎用if函數使它不重復

選中A1:A1000,在編輯欄輸入
=RAND()
按【CTRL+回車】
再選中B1:B1000,在編輯欄輸入
=RANK(A1,a$1:A$1000)
按【CTRL+回車】

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved