我正在編寫一個項目,該項目生成兩個包含數據的數組。一個數組包含特定國家的數據,另一個包含所有國家的數據。基於概率選擇2項中的1項的算法
例如,如果來自美國的用戶發出請求,我們將生成兩個包含數據的數組。一個數據僅用於美國,另一個數據用於全球範圍的數據,包括美國。如果訪問者來自美國,我想給美國陣列60%的機會被選中。這意味着其他陣列將有40%的機會被選中。
這是怎麼一個代碼?
我正在編寫一個項目,該項目生成兩個包含數據的數組。一個數組包含特定國家的數據,另一個包含所有國家的數據。基於概率選擇2項中的1項的算法
例如,如果來自美國的用戶發出請求,我們將生成兩個包含數據的數組。一個數據僅用於美國,另一個數據用於全球範圍的數據,包括美國。如果訪問者來自美國,我想給美國陣列60%的機會被選中。這意味着其他陣列將有40%的機會被選中。
這是怎麼一個代碼?
if(rand(1, 100) <= $probability_for_first_array)
{
use_the($first_array);
}
else
{
use_the($second_array);
}
我該找一個簡單,易於閱讀的解決方案
<?php
$us_data = "us";
$worldwide_data = "worldwide";
$probabilities = array($us_data => 0.60, $worldwide_data => 0.40);
/* Code courtesy of Jesse Farmer
* For more details see http://goo.gl/fzq5
*/
function get_data($prob)
{
$random = mt_rand(0, 1000);
$offset = 0;
foreach ($prob as $key => $probability)
{
$offset += $probability * 1000;
if ($random <= $offset)
{
return $key;
}
}
}
?>
加比的例子是罰款兩集,但如果你有多個數據集挑選,如果 - else結構不適當。