PHP 生成一定數量的不重複隨機數
將隨機數存入陣列,再在陣列中去除重複的值,即可生成一定數量的不重複隨機數。
function unique_rand($min, $max, $num) {
$count = 0;
$return = array();
while ($count < $num) {
$return[] = mt_rand($min, $max);
$return = array_flip(array_flip($return));
$count = count($return);
}
return $return;
}
生成隨機數時用了 mt_rand() 函式。這個函式生成隨機數的平均速度要比 rand() 快四倍。
去除陣列中的重複值時用了“翻翻法”,就是用 array_flip() 把陣列的 key 和 value 交換兩次。這種做法比用 array_unique() 快得多。
相關推薦
PHP 生成一定數量的不重複隨機數
將隨機數存入陣列,再在陣列中去除重複的值,即可生成一定數量的不重複隨機數。 function unique_rand($min, $max, $num) {$count = 0;$return = array();while ($count < $num) {$r
JS在一定範圍內取出一定的不重複隨機數
//迴圈建立一個數組的函式 function randomArr(maxcount){ var arr = []; for(var i=0;i<maxcount;i++){ a
PHP高效生成一個不重複隨機數
PHP高效產生m個n範圍內的不重複隨機數(m<=n) 注:在《 Programming Pearls 》一書中也有提到,題目為“如何高效產生m個n範圍內的不重複隨機數(m<=n)” 該演算法非常巧妙的取隨機數的位置(陣列的下標),替代取隨機數本身,每次取到一個隨機數之後,就將其在取值範圍
從總數中生成一定數量的隨機數
min 簡單的 IV 程序 sort random pri div port 最近需要一個入學選號的程序,通過Python可以快速的實現。xueWeiShu 表示學位數,baoMingShu 表示報名的總人數。 import random xueWeiShu = 100
生成N位不重複的隨機數
package com.jack.question.random; import java.util.Arrays; import java.util.Random; /** * @author lvh */ public class RandomArray { /* * 如題,定義一
生成不重複隨機數序列(Java)
從1到n之間抽取出k個不重複的隨機數,用Math.random()實現的話,可參照下面的程式碼。 int r = (int) (Math.random() * n), 生成下標,據此下標,去到numbers數組裡拿到隨機數。然後將numbers[r]的值設定成
[js][技巧]生成指定範圍指定個數的不重複隨機數
今天偶然看到的 比如要生成 1-100範圍之內的10個不重複隨機數,程式碼就可以這麼寫 var arr = []; for (var i = 1; i <=100; i++) { arr.push(i); } arr.sort(
生成不重複隨機數,自己寫的,嘿嘿
package 基礎演算法; import java.util.Arrays; public class radomNums { public static void main(String[] args){ int[] array=new int[8]; i
PHP產生不重複隨機數的5個方法總結
方法一: <?php $numbers = range (1,50); //shuffle 將陣列順序隨即打亂 shuffle ($numbers); //array_slice 取該陣列中的某一段 $num=6; $result = a
Delphi 中生成指定範圍不重複的隨機數
剛開始學習Dephi,寫這個相當於學習筆記,有不正確的地方,請各位大神多多指教 生成指定範圍的不重複大的隨機數 指定隨機數的範圍,生成不重複的隨機數 while si < sum do //si 表示生成隨機數的個數
Jmeter生成8位不重複的隨機數
要求:對註冊介面進行100000次壓測,手機號已126開頭,後面的8位數不限 前言:在進行測試中,我們需要對註冊介面進行壓測100000次,那麼就要求手機號碼每次填寫的不一致,否則手機號使用一次後會出現該手機號碼已註冊的情況,為了避免這種情況的發生,我們對手機號碼的
PHP 產生不重複隨機數的方法(一)
1.首先通過rand()函式獲取一個長度固定的陣列。 例如:$numbers = rand(6,50); 這條語句是可以產生6到50個數字,是按順序排列的。 接著我們需要打亂這個順序,產生45個無序的陣列成一個數組,這時就需要用到php中的shuffle()函式。 例如:s
mysql生成不重複隨機數(unique number generation)
問題來源 業務中有時會遇到要生成不重複隨機數的情況,例如,新生成一個商品編號、房間編號、或者其他物品編號等。不願意採用表的自增索引 id,同時又希望新生成的編號是不重複的。 這就需要考驗mysql的隨機數功能了。 Solution mysql的rand函
sql 生成隨機數 以及不重複隨機數
背景:想在表中隨機取10條記錄,讓取出來的資料不重複(表中必須是有個遞增列,且遞增從1開始間隔為1)。 資料表: CREATE TABLE testable ( id INT IDENTITY(1,1), myname NVARCHAR(1000), insertedTime DATETIME
生成N個不重複的隨機數
<?php /* * array unique_rand( int $min, int $max, int $num ) * 生成一定數量的不重複隨機數 * $min 和 $max: 指定隨機數
生成不重複隨機數的方法 --抽獎問題等
問題描述: 給定一個n,一個m 要求在1 ~ n這n個數字中,生成m個不重複的隨機數。 思路: 生成隨機數大家都知道,C++中也提供了相關的函式——rand()。 但是問題中要求生成的是無重複的隨機數,這裡就需要對生成的隨機數進行去重操作了。 首選最
分享一個php產生不重複隨機數
public function getrandnum($allsubnum,$rulesubnum) { $arr = array(); function thearr($arr,$allsubnum,$rulesubnum) { if(count($arr)<$rulesubnum){ $th
PHP 產生m個n範圍內的不重複隨機數
PHP高效產生m個n範圍內的不重複隨機數(m<=n) 方法一: <?php for ($i=1;$i<=52;$i++) { $arr[]= $i; } shuffle($arr); print_r($arr); 方法二: 注:在《 Pro
C# Random 生成不重複隨機數
名稱空間:System 表示偽隨機數生成器,一種能夠產生滿足某些隨機性統計要求的數字序列的裝置。 偽隨機數是以相同的概率從一組有限的數字中選取的。所選數字並不具有完全的隨機性,因為它們是用一種確定的數學演算法選擇的,但是從實用的角度而言,其隨機程度已足夠了。 偽隨機數的
ios 生成不重複隨機數
一、先講下ios三種取隨機數的方法: 1. srand((unsigned)time(0)); //不加這句每次產生的隨機數不變 int i = rand() % 5;