phpfor獲取隨機數
問題有點模糊,我先暫時把「保留兩位小數」理解成「[輸出的隨機數]保留兩位小數」,而非其他因素保留多少小數。
又把「1-10」,理解成包括1和10在內其兩數之間的小數,
把10-50,理解成10.01到50.00之間的數,不包括10.00。以此類推。
<?php
functiongenRandom(){
$p=rand(1,100);
if($p<=60)$r=rand(100,1000);
elseif($p>60and$p<=85)$r=rand(1001,5000);
elseif($p>85and$p<=95)$r=rand(5001,10000);
else$r=rand(10001,20000);
return$r/100;
}
$a=array();
$total=50000;
for($i=0;$i<$total;$i++){
$c=genRandom();
if($c>=1and$c<=10)$p=0;
elseif($c>10and$c<=50)$p=1;
elseif($c>50and$c<=100)$p=2;
elseif($c>100and$c<=200)$p=3;
else$p=4;
if(!array_key_exists($p,$a))$a[$p]=1;
else$a[$p]++;
}
if(!array_key_exists(4,$a))$a[4]=0;
echo"總樣本數".$total.'<br/>';
echo"1-10樣本數".$a[0].',占'.($a[0]/$total*100).'%<br/>';
echo">10-50樣本數".$a[1].',占'.($a[1]/$total*100).'%<br/>';
echo">50-100樣本數".$a[2].',占'.($a[2]/$total*100).'%<br/>';
echo">100-200樣本數".$a[3].',占'.($a[3]/$total*100).'%<br/>';
echo"其他樣本數".$a[4].',占'.($a[4]/$total*100).'%<br/>';
總樣本數50000
1-10樣本數30052,佔60.104%
>10-50樣本數12404,佔24.808%
>50-100樣本數4993,佔9.986%
>100-200樣本數2551,佔5.102%
其他樣本數0,佔0%
B. php 圖像驗證碼無法顯示圖片
這段代碼如果放到頁面里必須保證占第1行開始,代碼前無其他不相關代碼。。。,建議建立純代碼文件後,在頁面里用<img src='img.php' />調用,因為gd庫默認生成全部代碼,如果代碼上有圖片不支持的代碼就會出錯,但在尾部就沒有影響。。。
C. php向一個空數組中添加1000個不重復的數字,要求:數字需要在0-3000中產的代碼
// 1、首先定義一個空的目標數組
$arr = [];
// 2、開始for循環
for ($i = 0; $i < 1000; ) {
****// 3、獲取0~3000之間的隨機數
****$r = rand(0, 3000);
****// 4、判斷該隨機數是否存在目標數組中
****if (!in_array($r, $arr)) {
********// 5、如果不存在,則將該隨機數添加到目標數組中
********$arr[] = $r;
********// 6、最關鍵的一步:只有向目標數組添加新值的時候才改變$i的值
********$i ++;
****}
****continue;
}
// 7、最後列印出目標數組,也可使用print_r函數
var_mp($arr);
die;
總結:該題的難點在於在什麼時候再改變計數器變數$i的值,只有數組元素新增的時候才能改變$i,使其加1,當然for循環體也可反向寫,也可採用別的循環結構,留給你自己發揮^>^。
希望能幫助到你,望採納,謝謝~
D. php怎樣生成一個32位的隨機字元串
如用戶注冊生成隨機密碼,用戶重置密碼也需要生成一個隨機的密碼。隨機密碼也就是一串固定長度的字元串。下面介紹生成隨機字元串的三種基本方法:
E. 求一個生成四位隨機數的PHP代碼
最簡單的代碼:
圖片:
文字:
<?php
echo "四位隨機代碼是:". mt_rand(999, 9999); //隨機值得范圍是999-9999
?>
在PHP中 mt_rand是隨機函數,括弧中是隨機值范圍:從最小值到最大值之間隨機變換。
(5)phpfor獲取隨機數擴展閱讀:
1、mt_rand定義和用法:
mt_rand (PHP 4, PHP 5, PHP 7) —生成更好的隨機數。
2、mt_rand說明:
intmt_rand(void)。
intmt_rand(int$min,int$max)。
很多老的 libc 的隨機數發生器具有一些不確定和未知的特性而且很慢。PHP 的rand()函數默認使用 libc 隨機數發生器。mt_rand()函數是非正式用來替換它的。
如果沒有提供可選參數min和max,mt_rand()返回 0 到mt_getrandmax()之間的偽隨機數。例如想要 5 到 15(包括 5 和 15)之間的隨機數,用mt_rand(5, 15)。
3、參數:
min 可選的、返回的最小值(默認:0)。
max 可選的、返回的最大值(默認:mt_getrandmax())。
4、返回值:
返回min(或者 0) 到max(或者是到mt_getrandmax(),包含這個值)之間的隨機整數。
PHP官網-mt_rand
F. 寫了個JS腳本來刷新驗證碼 可是總是刷不出來 求高手
<img src='for2.php?'>
js 更換img的src時 在for2.php後面加 隨機字元。如 "for2.php?"+mathi.random();