我创建了一个投注脚本,并且需要有关“高”或“低”按钮的帮助。
我创建了一个确定机会的输入值。例如,获胜的机会是5%。因此,当用户单击高/低按钮时,该功能将考虑获胜的机会(5%)。这意味着95%的用户会蒙受损失。
当用户单击它时,我实现了一个随机数。
例如, -获胜的机会是5% -按钮HIGH是950000〜999999之间的随机数 -按钮LOW是介于0〜49999之间的随机数
如何在高或低单击按钮时获得结果,用户将有5%的机会获胜,而有95%的机会失去
请帮助 谢谢
答案 0 :(得分:0)
我写的代码正是这样做的。这是the GitHub repository。
这是与您相关的部分:
<?php
require_once("confirm.php");
/*
* A function to select an element from an array with indicated probabilites.
* Input:
* An associative array whose keys are the elements to be selected from, and whose values are the associated probabilities.
* Output:
* The selected element, or "NULL" if an invalid probability distribution was supplied.
* @params
* array $arr: The array containing the probability distribution.
*/
function probSelect(array $arr)
{
if(confirm($arr))
{
$var = lcg_value(); #The random float that would be used to select the element.
$sum = 0;
foreach ($arr as $key => $value)
{
$sum += $value;
if($var <= $sum)
{
return $key;
}
}
}
else
{
print("ERROR!!! The supplied probability distribution must sum to 1. <br>");
return null;
}
}
confirm()
是一个函数,用于确认向probSelect()
提供了有效的概率分布。如果提供的概率分布有效,则代码的内容位于if
块中。
lcg_value()
生成0
和1
之间的随机浮点数。这个随机数($var
)是我算法的有效成分。
然后使用foreach
遍历数组,对数组的值求和。如果$var
小于或等于当前总和,则返回当前密钥(我称其为登陆该密钥)。
上面的算法生成概率选择,因为$var
落在任何给定键上的机会与该键的值(即其概率质量)完全相同。