php根據概率隨機,php隨機抽獎

本文目錄一覽:

通過數組每個元素的出現概率,隨機得到一個元素,用php

估計可能是這個意思,比如說 array(1,2); 隨機得到一個元素1的幾率50%,array(1,1,2);隨機得到元素1的幾率66.7%。猜測可能是這個意思

php按概率生成隨機數

以下代碼,直接運行即可

meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /

以下代碼,直接運行即可

?php

$rands = rand(1,10);

if($rands=7){

$num=1;

}elseif($rands==8){

$num =2;

}else{

$num = 3;

}

echo $num;

?

php ThinkPhP 5.1 按概率生成隨機數?

echo (rand(1,100) = 70 ? rand(1,50) : rand(51,100))/100;

先說明:偽隨機

rand(1,100)產生1~100範圍內隨機數

如果 產生的隨機數 小於等於 70

返回 1~50 隨機數

否則返回 51~100 隨機數

最後隨機數/100即可。

為什麼除以100,是因為rand 的參數均為int,所以放大100倍獲取隨機,得出結果後再縮小100倍剛好就是分了。

php取隨機數概率演算法

問題有點模糊,我先暫時把「保留兩位小數」理解成「[輸出的隨機數]保留兩位小數」,而非其他因素保留多少小數。

又把「1-10」,理解成包括1和10在內其兩數之間的小數,

把10-50,理解成10.01到50.00之間的數,不包括10.00。以此類推。

?php

function genRandom(){

$p=rand(1,100);

if($p=60) $r=rand(100,1000);

elseif($p60 and $p=85) $r=rand(1001,5000);

elseif($p85 and $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=1 and $c=10) $p=0;

elseif($c10 and $c=50) $p=1;

elseif($c50 and $c=100) $p=2;

elseif($c100 and $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%

php 如何隨機生成指定數字和概率?

親,你可以這樣做呦!~~

如果只有這三個數,是不好弄出 0:85%  1:5%  2:10%的

但是你如果想提高某個數字出現的概率,你可以適當讓這個數組增多。

你可以這樣寫:

?php

// 定義一個數組,裡面有85個0

$num0 = array_fill(0, 85, 0); 

// 定義一個數組,裡面有5個1

$num1 = array_fill(1, 5, 1); 

// 定義一個數組,裡面有10個2

$num2 = array_fill(2, 10, 2); 

// 總數組,裡面總共100個元素

$allNum = array_merge($num0, $num1, $num2);

// 隨機取一個元素

$randKey = array_rand($allNum);

$randnum = $allNum[$randKey];

// 以上就可以實現出現0的概率是85% 出現1的概率是5% 出現2的概率是10%了,因為一共一百個數,裡面有85個是0, 5個是1, 10個是2

希望可以幫到你呦!~如果有不正確的地方,歡迎指正!~~

本人博客: ,歡迎交流學習!~~

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-09 16:32
下一篇 2024-12-09 16:32

相關推薦

  • PHP和Python哪個好找工作?

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

    編程 2025-04-29
  • Python根據表格數據生成折線圖

    本文將介紹如何使用Python根據表格數據生成折線圖。折線圖是一種常見的數據可視化圖表形式,可以用來展示數據的趨勢和變化。Python是一種流行的編程語言,其強大的數據分析和可視化…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • mysessioncontext 根據jessionid獲取session為空解決方法

    當我們在使用web應用程序開發時,mysessioncontext 根據jessionid獲取session為空是一個常見的錯誤。為了避免這個錯誤的發生,我們必須了解什麼是sess…

    編程 2025-04-28
  • 如何使用Java List根據某一欄位升序排序

    本文將詳細介紹在Java中如何使用List集合按照某一欄位進行升序排序。具體實現思路如下: 一、定義需要進行排序的Java對象 首先,我們需要定義一個Java對象,該對象包含多個字…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • Java中字元串根據逗號截取的多方面分析

    一、String的split()方法的使用 Java中對於字元串的截取操作,最常使用的是split()方法,這個方法可以根據給定的正則表達式將字元串切分成多個子串。在對基礎類型或簡…

    編程 2025-04-25

發表回復

登錄後才能評論