php隨機數演算法,php數組隨機數

本文目錄一覽:

php怎麼生成6位隨機數,php隨機數例子

通常情況下,當我們要生成一個隨機字元串時,總是先創建一個字元池,然後用一個循環和mt_rand()或rand()生成php隨機數,從字元池中隨機選取字元,最後拼湊出需要的長度。

複製代碼 代碼如下:

function randomkeys($length)

{

$pattern = ‘1234567890abcdefghijklmnopqrstuvwxyz

ABCDEFGHIJKLOMNOPQRSTUVWXYZ,./l

t;?;#:@~[]{}-_=+)(*^%___FCKpd___0pound;”!’; //字元池

for($i=0;$i$length;$i++)

{

$key .= $pattern{mt_rand(0,35)}; //生成php隨機數

}

return $key;

}

echo randomkeys(8);

這個php隨機函數能生成XC*=z~7L這樣的字元串,夠隨機!現在介紹另一種用PHP生成隨機數的方法:利用chr()函數,省去創建字元池的步驟。

複製代碼 代碼如下:

function randomkeys($length)

{

$output=”;

for ($a = 0; $a $length; $a++) {

$output .= chr(mt_rand(33, 126)); //生成php隨機數

}

return $output;

}

echo randomkeys(8);

在第二個php隨機函數里,先用mt_rand()生成一個介於33到126之間的php隨機數,然後用chr()函數轉化成字元。查看ascii碼錶就會發現,33到126代表的正是第一個函數中字元池裡的所有字元。第二個函數和第一個函數功能相同,而且更簡潔。

php程序如何產生隨機數?

mt_rand — 生成更好的隨機數

它可以產生隨機數值的平均速度比 libc 提供的 rand() 快四倍。

所以建議樓主用這個函數 比rand要快

int mt_rand ([ int $min ], int $max ) $min為做小值 $max為最大值

?php

echo “table”;

for ($i=0;$i2;$i++) // 外層循環控制行數

{

echo “tr”;

for ($j=0;$j10;$j++) // 內層循環控制列數

{

echo “td”.mt_rand(10,100000).”/td”; // 產生隨機數

}

echo “/tr”;

}

echo “/table”

?

php生成隨機數字,範圍1-100,每次生成一個數字,可以重複

echo mt_rand(1,100);

請使用rand函數

int rand ( int $min , int $max )

使用循環生成,假如想生成512個數字,就可以像這樣:

$num = 1;//初始化一個變數為1

for($i = 1; $i = 512; $i++)//這個是看你要生成多少個數字,然後循環生成

{

if($num = 100)

$num = 1;//若變數的數字大於一百,則返回變成1

echo $num.”/br”;//輸出變數數字,即生成的數字,後面的/br是換行

$num++;//然後將變數加1,即在前面生成的數字基礎上加一

}

擴展資料:

密碼學安全偽隨機性。其定義為,給定隨機樣本的一部分和隨機演算法,不能有效的演算出隨機樣本的剩餘部分。

真隨機性。其定義為隨機樣本不可重現。實際上只要給定邊界條件,真隨機數並不存在,可是如果產生一個真隨機數樣本的邊界條件十分複雜且難以捕捉(比如計算機當地的本底輻射波動值),可以認為用這個方法演算出來了真隨機數。

參考資料來源:百度百科-隨機數

php怎樣生成一個32位的隨機字元串?

如用戶註冊生成隨機密碼,用戶重置密碼也需要生成一個隨機的密碼。隨機密碼也就是一串固定長度的字元串。下面介紹生成隨機字元串的三種基本方法:

方法一

1、在33 – 126中生成一個隨機整數,如35。

2、將35轉換成對應的ASCII碼字元,如35對應#。

3、重複以上1、2步驟n次,連接成n位的密碼。

該演算法主要用到了兩個函數,mt_rand ( int $min , int $max )函數用於生成隨機整數,其中 $min – $max 為 ASCII 碼的範圍,這裡取 33 -126 ,可以根據需要調整範圍,如ASCII碼錶中 97 – 122 位對應 a – z 的英文字母,具體可參考 ASCII碼錶; chr ( int $ascii )函數用於將對應整數 $ascii 轉換成對應的字元。

function create_password($pw_length =  

$randpwd = 」; 

for ($i = 0; $i  $pw_length; $i++) 

$randpwd .= chr(mt_rand(33, 126)); 

return $randpwd; 

// 調用該函數,傳遞長度參數$pw_length = 6 

echo create_password(6);

方法二

1、預置一個的字元串 $chars ,包括 a – z,A – Z,0 – 9,以及一些特殊字元。

2、在 $chars 字元串中隨機取一個字元。

3、重複第二步n次,可得長度為n的密碼。

function generate_password( $length = 8 ) { 

// 密碼字符集,可任意添加你需要的字元 

$chars = 『abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^*()-_ []{}~`+=,.;:/?|’; 

$password = 」; 

for ( $i = 0; $i  $length; $i++ ) 

// 這裡提供兩種字元獲取方式 

// 第一種是使用 substr 截取$chars中的任意一位字元; 

// 第二種是取字元數組 $chars 的任意元素 

// $password .= substr($chars, mt_rand(0, strlen($chars) – 1), 1); 

$password .= $chars[ mt_rand(0, strlen($chars) – 1) ]; 

return $password; 

}

方法三

1、預置一個的字元數組 $chars ,包括 a – z,A – Z,0 – 9,以及一些特殊字元。

2、通過array_rand()從數組$chars中隨機選出$length個元素。

3、根據已獲取的鍵名數組 $keys,從數組$chars取出字元拼接字元串。該方法的缺點是相同的字元不會重複取。

function make_password( $length = 8 ) 

  

// 密碼字符集,可任意添加你需要的字元 

$chars = array(『a’, 『b’, 『c’, 『d’, 『e’, 『f’, 『g’, 『h’, 

『i’, 『j’, 『k’, 『l’,’m’, 『n’, 『o’, 『p’, 『q’, 『r’, ‘s’, 

『t’, 『u’, 『v’, 『w’, 『x’, 『y’,’z’, 『A’, 『B’, 『C’, 『D’, 

『E’, 『F’, 『G’, 『H’, 『I’, 『J’, 『K’, 『L’,’M’, 『N’, 『O’, 

『P’, 『Q’, 『R’, 『S’, 『T’, 『U’, 『V’, 『W’, 『X’, 『Y’,’Z’, 

『0′, 『1′, 『2′, 『3′, 『4′, 『5′, 『6′, 『7′, 『8′, 『9′, 『!’, 

『@’,’#’, 『$’, 『%’, 『^’, 『’, 『*’, 『(『, 『)’, 『-‘, 『_’, 

『[‘, ‘]『, 『{『, 『}’, 『’, 『’, 『~’, 『`’, 『+’, 『=’, 『,’, 

『.’, 『;’, 『:’, 『/’, 『?’, 『|’); 

  

// 在 $chars 中隨機取 $length 個數組元素鍵名 

$keys = ($chars, $length); 

$password = 」; 

for($i = 0; $i  $length; $i++) 

// 將 $length 個數組元素連接成字元串 

$password .= $chars[$keys[$i]]; 

return $password; 

}

php取隨機數概率演算法

//首先定義概率數組

$Probability[“1-10”] = 0.6;

$Probability[“11-50”] = 0.25;

$Probability[“51-100”] = 0.10;

$Probability[“101-200”] = 0.05;

//擴大1000倍便於計算

foreach($Probability as $k = $v){

   $Probability[$k] = $v*1000;

}

$Num = 0;

$Random = rand(1,1000);//生成隨機數

foreach($Probability as $k = $v){

   if(  $Num  $Random  $Random = $v+$Num){

      //進入這裡表示隨機數在哪一個範圍內

      $Range = explode(“-“, $k);

      //生成範圍區間的隨機數

      $Result = rand($Range[0],$Range[1]);

      echo $Result;

      break;

   }else{

      $Num += $v;

   }

}

php隨機數生成的函數是?

php提供的隨機數函數rand(),rand()函數將返回隨機整數,具體使用方法如下:rand(min,max)

可選參數min和max可以使rand() 返回0到rand_max之間的偽隨機整數,例如,想要5到15(包括 5 和 15)之間的隨機數,用 rand(5, 15)

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/307325.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-02 18:06
下一篇 2025-01-02 18:06

相關推薦

  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Python實現爬樓梯演算法

    本文介紹使用Python實現爬樓梯演算法,該演算法用於計算一個人爬n級樓梯有多少種不同的方法。 有一樓梯,小明可以一次走一步、兩步或三步。請問小明爬上第 n 級樓梯有多少種不同的爬樓梯…

    編程 2025-04-29
  • Python生成隨機數的應用和實例

    本文將向您介紹如何使用Python生成50個60到100之間的隨機數,並將列舉使用隨機數的幾個實際應用場景。 一、生成隨機數的代碼示例 import random # 生成50個6…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • Python去掉數組的中括弧

    在Python中,被中括弧包裹的數據結構是列表,列表是Python中非常常見的數據類型之一。但是,有些時候我們需要將列表展開成一維的數組,並且去掉中括弧。本文將為大家詳細介紹如何用…

    編程 2025-04-29
  • Harris角點檢測演算法原理與實現

    本文將從多個方面對Harris角點檢測演算法進行詳細的闡述,包括演算法原理、實現步驟、代碼實現等。 一、Harris角點檢測演算法原理 Harris角點檢測演算法是一種經典的計算機視覺演算法…

    編程 2025-04-29
  • 數據結構與演算法基礎青島大學PPT解析

    本文將從多個方面對數據結構與演算法基礎青島大學PPT進行詳細的闡述,包括數據類型、集合類型、排序演算法、字元串匹配和動態規劃等內容。通過對這些內容的解析,讀者可以更好地了解數據結構與算…

    編程 2025-04-29

發表回復

登錄後才能評論