相关疑难解决方法(0)

在php中按重量从数组中随机取值

我知道这个问题可能已被提出,但我不清楚先前的问题是否足以知道他们是否按照我的意愿行事.

$fruits = array('20' => 'apple', '40' => 'orange', '40' => 'pear');
Run Code Online (Sandbox Code Playgroud)

关键是获取价值的机会的百分比.我想mt_rand()一个0到99之间的数字,并根据这些百分比从$ fruits返回一个值.

很可能我很困惑,因为我不知道如何解释我在寻找什么.

提前感谢您的帮助.

编辑:根据这些机会,想要来自$ fruits的随机值:

我希望有40%的机会获得橘子,40%的机会获得梨,80%的机会获得苹果.

编辑:为了进一步澄清,由于很多答案都错了,(或者我只是不理解他们的代码),无论我选择什么号码,我都需要一个结果,而不仅仅是20,40或40.

php arrays random percentage

11
推荐指数
2
解决办法
7815
查看次数

生成随机加权值

编辑:我已经重写了这个问题,希望目标更加清晰.

这是对这个问题的扩展问题在这里,我真的很喜欢在所提供的功能,这个答案.

在上面的答案中,人们能够设定击中极端的概率,较高的数字产生较高数字的概率,反之亦然.问题是我必须设置3组的概率.这些组是最低值(LV),最高值(HV)和中间值(MV).但是,为了简化请求,我们可以考虑EVP=HVP=LVP.

给定任何范围,HV/LV应基于指定的EVP出现,并且当您从每个极端的范围内进展/下降时,该范围中下一个值的概率将根据EVP之间的距离增加或减少.和MVP.

使用1-6的示例范围,1和6加权为5%(EVP),概率差为1/6为5%,2/4为15%,3/4为30%(MVP) ),总计100%.反过来也应该是可能的,交换EVP和MVP应该产生下图的反转.

这是一个我希望将传达给定示例预期结果的图像.

中加权:

中等加权图

额外奖励:如果我能够单独设置HVP和LVP产生类似于下图的结果,那将是最优秀的(注意:图表不符合上述规范).

中等加权(奖金):

中等加权奖金图

谢谢!

php c# random

10
推荐指数
1
解决办法
4687
查看次数

PHP彩票门票选手

我即将创建一个脚本,为我的彩票选择一个赢家.门票的数量选择如下:amount of money * 100所以$ 1.26 = 126门票.

我做了这个,它给了我中奖的票号,但后来我无法得到获胜的用户:

$totaltickets = 0;

foreach($players as $player){

    $totaltickets += $player->depositedValue*100;
}

$winningTicket = rand(1,$totaltickets);
Run Code Online (Sandbox Code Playgroud)

我有这样的行:

Player1 - 1.25$
Player2 - 5.99$
etc..
Run Code Online (Sandbox Code Playgroud)

如果有可能那么我想保持这样,并且每个票证在数据库中没有1000行.

php mysql

7
推荐指数
1
解决办法
1989
查看次数

按用户定义的权重选择随机元素

可能重复:
在PHP中按权重生成随机结果?

我有一个Web应用程序,用户可以在其中添加1-20个文本字符串,并为它们指定显示频率的权重.然后,系统将根据定义的权重选择随机字符串.最好的方法是什么?每个字符串的重量范围值是否重要?我可以让用户为每个字符串分配一个数字(0-100)吗?你会如何选择随机字符串?(每个选择都不担心之前选择的内容,每个字符串在每次调用开始时选择的几率(基于权重)相同).

php random algorithm

6
推荐指数
1
解决办法
3257
查看次数

生成具有修复概率的随机数

我在论坛中对此有很多不满,但所有答案都是如此具体的问题.我发现我最需要的是:Alon Gubkin的概率随机数发生器.

不同的是,Alon要求给予一张脸(这是六张)额外的机会.在我的情况下,我想划分六个面孔的机会,使它们加起来达到100%.例如,面部1有40%的几率,面部2只有10%,面部3有25%,......等.

我怎样才能做到这一点?

php random probability

5
推荐指数
1
解决办法
8048
查看次数

根据区域随机

我有一个元素数组:

$arr = array(
  '0' => 265000, // Area
  '1' => 190000,
  '2' => 30000,
  '3' => 1300
);
Run Code Online (Sandbox Code Playgroud)

我想根据区域(数组值)获取随机索引。我需要更频繁地选择具有大价值的区域。我怎样才能做到这一点?

我现在拥有的:

$random_idx = mt_rand(0, count($arr)-1);    
$selected_area = (object)$arr[$random_idx];
Run Code Online (Sandbox Code Playgroud)

谢谢!

arrays random area latitude-longitude

5
推荐指数
1
解决办法
213
查看次数

如何从加权列表中选择4个唯一项?

所以我有一个加权项目列表,我想从这个列表中选择4个非重复项目.

Item     Weight
Apple     5
Banana    7
Cherry    12
...
Orange    8
Pineapple 50
Run Code Online (Sandbox Code Playgroud)

最有效的方法是什么?我最初的尝试是,如果一个已经被选中的项目出现的话,只需重新选择随后的选秀权......但是对于一个小名单,这可能会导致大量的重新加入.

编辑澄清:对于上面的例子,忽略水果D到N,总重量为82.因此首先被挑选的机会是:A~6%B~8.5%C~14.6%O~9.8%P ~61%一旦物品被挑选,概率将(应该!)改变.

php random algorithm list weighted

4
推荐指数
1
解决办法
526
查看次数

PHP:如何随机选择最大概率值?

我有以下数组和代码

    $a = [
      149 => 55,
      130 => 10,
      131 => 5,
      132 => 5,
      133 => 10,
      134 => 10,
      135 => 5
    ];

   $rand = rand (0,(count($a)-1));

   echo array_values($a)[$rand];
Run Code Online (Sandbox Code Playgroud)

这将主要产生 as5,10而不是55.

值的总和是 100% 的概率。值可以是十进制的,也可以是 55.55、10.10 等,但总体来说是 100%

我已经关注了https://www.geeksforgeeks.org/how-to-get-random-value-out-of-an-array-in-php/

但这并没有像预期的那样给出完美的结果。

所以应该主要随机选择概率最高的。

所以结果可以是这样的:55、55、10、10、10、55、5等。

我找到了一些有用的链接在 PHP 中按重量生成随机结果?其中概率 = 权重

php arrays random probability

4
推荐指数
1
解决办法
363
查看次数

PHP加权随机数

如何生成1到10之间的加权随机数,其中10为最高机会,1为最低机会?

rand(1,10) ?
Run Code Online (Sandbox Code Playgroud)

需要是一个简单的单行代码,因为它将运行100,000次

php

3
推荐指数
1
解决办法
2007
查看次数

随机加权选择事件

可能重复:
在PHP中按权重生成随机结果?

我已经创建了一个数据库,其中我存储rss feeds.i的名称和链接已经使rss阅读器和一切都很好,直到现在.我想制作一个新闻滚动条,将显示feed的文章.但我想要为饲料提供一些重量值,以便每个饲料根据其对我的重要性进行选择,并在从数据库中选择饲料时自动选择其文章仅在卷轴中显示.有关如何做的任何想法那??? ???提前谢谢..

ps我的问题是如何从数据库中随机加权选择Feed,而不是如何显示feed的文章(我已完成此部分).

php mysql random choice

2
推荐指数
1
解决办法
1857
查看次数

使用加权概率生成随机数

我想随机选择一个数字,但是基于一组数字的概率; 例如(2-6).

我想要以下分布:

  • 6的概率应该是10%
  • 5的概率应该是40%
  • 4的概率应该是35%
  • 3的概率应为5%
  • 2的概率应为5%

php random algorithm

-2
推荐指数
1
解决办法
4184
查看次数