国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

PHP中生產不重復隨機數的方法

2024-04-25 20:35:47
字體:
來源:轉載
供稿:網友

PHP內置函數不重復隨機數

需求:要生成一個數組,這個數組里面有10個元素,都是整形,并且是1-60之間不重復的隨機數。
代碼:

代碼示例:

<?php
function get_randoms($min,$max,$num){

$count = 0;

$res = array();

while($count<$num){

$res[] = mt_random($min,$max);

$res = array_flip(array_flip($res));

$count = count($res);

}

return $res;

}

$result = get_randoms(1,60,10);

?>

在這里 他用$count 結果數組的個數,他在while 循環中 使得結果數組的個數小于 目標個數。通過這樣,獲取到$count 是 目標個數 的一個數組。

期間,每一個循環中,通過mt_random($min,$max),隨機出區間內的一個值,存放到數組$res中,然后通過兩次key-value 交換,也就是通過數組key的唯一性,使得做到不重復。

我看了這個邏輯的代碼之后,我不禁陷入了深思,假如說當你不知道array_filp 函數的時候你怎么做?

說白了就是用key的唯一性,使得隨機數不會存在重復。那么我們能不能將這個問題簡單化處理呢?

代碼示例:

<?php

function get_randoms($min,$max,$num){

$count = 0;

$res = array();

while($count<$num){

$key = mt_random($min,$max);

$res[$key] = $key;

$count = count($res);

}

return $res;

}

$result = get_randoms(1,60,10);

?>

這樣完全是單獨的通過數組key的唯一性 解決了這個問題。根本就不會用到array_flip。

總結:

1,因為php提供了大量的內置函數,他們的執行效率都很高。在遇到問題的時候,盡可能去用它去解決問題。這樣方便而且快速。

2,php 提供了大量的內置函數,執行效率也很高,但是,雖然效率高,還是需要時間去執行的。

在遇到問題的時候,不要盲目的去做,可以先看清處理方法的本質,以便于巧妙的實現他。

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀来县| 蒙山县| 嘉定区| 黄冈市| 连州市| 德昌县| 通渭县| 梁山县| 金秀| 江都市| 阳山县| 宜昌市| 长治县| 辽中县| 通河县| 佳木斯市| 拉萨市| 陇南市| 安泽县| 景东| 饶平县| 新竹市| 阳山县| 赫章县| 六安市| 巴塘县| 太原市| 新干县| 彭州市| 东兰县| 富源县| 叙永县| 威海市| 敖汉旗| 斗六市| 襄樊市| 琼海市| 怀集县| 朝阳区| 丹阳市| 阳曲县|