PHP生成带有百分比折扣的折扣代码
我正在制作一个购物网站,为每个人创建一个独特的折扣代码。PHP生成带有百分比折扣的折扣代码,php,algorithm,Php,Algorithm,我正在制作一个购物网站,为每个人创建一个独特的折扣代码。 我想为此代码生成1%的折扣,例如: x3M2qE=>10% gh2WW4=>20% ... 这些代码的创建方式应确保生成90%的概率远小于生成10%的概率 确定最佳和最优化的算法,并帮助我正确执行, 谢谢。基本上,您需要的是加权随机值。因此,10%的折扣比90%的折扣更常见。下面是我在另一个项目中使用的内容(在Javascript中,但为您将逻辑转换为PHP) 对于每个折扣值,指定您希望查看的频率: frequencies = [
我想为此代码生成1%的折扣,例如: x3M2qE=>10%
gh2WW4=>20%
... 这些代码的创建方式应确保生成90%的概率远小于生成10%的概率 确定最佳和最优化的算法,并帮助我正确执行,
谢谢。基本上,您需要的是加权随机值。因此,10%的折扣比90%的折扣更常见。下面是我在另一个项目中使用的内容(在Javascript中,但为您将逻辑转换为PHP) 对于每个折扣值,指定您希望查看的频率:
frequencies = [50, 20, 15, 10, 5, 5, 5, 5]
5% 10% 20% 30% 40% 70% 80% 90% <-- reference values for %
- 如果选择的随机数为47,则47大于0,并且 小于frequenciesborders[0](50),因此适合10%的范围
- 如果您选择的随机数为78,比frequenciesborders[1](70)大78,比frequenciesborders[2](85)小78,则它适合60%的范围
0 50 70 85 95 100 105 110 115
-------------------------------------------------------------------------------------------------------------------
< 5% >< 10% >< 20% >< 30% ><40%><70%><80%><90%>
050705100110115
-------------------------------------------------------------------------------------------------------------------
< 5% >< 10% >< 20% >< 30% >
随机数在0到115之间。范围越大,折扣率越高。基本上,您需要的是加权随机值。因此,10%的折扣比90%的折扣更常见。下面是我在另一个项目中使用的内容(在Javascript中,但为您将逻辑转换为PHP) 对于每个折扣值,指定您希望查看的频率:
frequencies = [50, 20, 15, 10, 5, 5, 5, 5]
5% 10% 20% 30% 40% 70% 80% 90% <-- reference values for %
- 如果选择的随机数为47,则47大于0,并且 小于frequenciesborders[0](50),因此适合10%的范围
- 如果您选择的随机数为78,比frequenciesborders[1](70)大78,比frequenciesborders[2](85)小78,则它适合60%的范围
0 50 70 85 95 100 105 110 115
-------------------------------------------------------------------------------------------------------------------
< 5% >< 10% >< 20% >< 30% ><40%><70%><80%><90%>
050705100110115
-------------------------------------------------------------------------------------------------------------------
< 5% >< 10% >< 20% >< 30% >
随机数在0到115之间。范围越大,折扣率越高。最佳代码:
$chances = [
'50%' => 60,
'10%' => 30,
'5%' => 5,
'4%' => 2,
'3%' => 1,
'2%' => 1,
'1%' => 1,
];
$max_chance = 0;
foreach($chances as $key => $val) {
$max_chance += $val;
}
$rand = mt_rand(1, $max_chance);
$cur = 0;
foreach($chances as $key => $val) {
$cur += $val;
if($rand <= $cur)
echo $key;
}
$chances=[
'50%' => 60,
'10%' => 30,
'5%' => 5,
'4%' => 2,
'3%' => 1,
'2%' => 1,
'1%' => 1,
];
$max_chance=0;
foreach($key=>$val){
$max_chance+=$val;
}
$rand=mt_rand(1$max_chance);
$cur=0;
foreach($key=>$val){
$cur+=$val;
如果($rand最优代码:
$chances = [
'50%' => 60,
'10%' => 30,
'5%' => 5,
'4%' => 2,
'3%' => 1,
'2%' => 1,
'1%' => 1,
];
$max_chance = 0;
foreach($chances as $key => $val) {
$max_chance += $val;
}
$rand = mt_rand(1, $max_chance);
$cur = 0;
foreach($chances as $key => $val) {
$cur += $val;
if($rand <= $cur)
echo $key;
}
$chances=[
'50%' => 60,
'10%' => 30,
'5%' => 5,
'4%' => 2,
'3%' => 1,
'2%' => 1,
'1%' => 1,
];
$max_chance=0;
foreach($key=>$val){
$max_chance+=$val;
}
$rand=mt_rand(1$max_chance);
$cur=0;
foreach($key=>$val){
$cur+=$val;
如果($rand)如果我写了最佳代码,我会展示它!如果我写了最佳代码,我会展示它!感谢lottttttt,你的代码中的PieceFrequencieses[I]是什么?啊嘘**我错过了一个,我会编辑2秒。这是在3D俄罗斯方块游戏中用来选择下一个片段的…感谢lottttttt,PieceFrequencieses[I]是什么在你的代码中?啊嘘**我错过了一个,我将在2秒钟内编辑。这是在一个3D俄罗斯方块游戏中用来选择下一个片段的。。。