【问题标题】:How to get a random item from a list with some preference [duplicate]如何从具有某些偏好的列表中获取随机项目[重复]
【发布时间】:2017-03-19 16:19:14
【问题描述】:

我想从具有某种偏好的列表中随机选择一个项目,这将增加在 Java 中选择某些项目而不是其他项目的概率。我已经完成了正常的随机选择,但现在我想包括这个。我正在考虑增加特定项目的数量,例如在列表中多次复制它,但我觉得这不是正确的方法。

我的另一个想法可能涉及二维数组,所以也许苹果的整数点为 6,然后橙色的点为 3。这样苹果会比橙色更偏爱。我只是建议,我什至不知道如何使用多维数组。

欢迎提出任何想法。

【问题讨论】:

  • 请详细说明“偏好”。一些代码会很有用。
  • @Valentino 我已经编辑添加了一个简单的概念。我没有说我已经编码了,所以我没有任何代码可以粘贴
  • 如果您需要编码方面的帮助,您必须给出“偏好”和“概率”之间关系的数学描述。只有您可以指定问题的要求。一个例子是:概率与偏好值成正比。另一个更长的例子:所有小于 3 的偏好值的概率为 0.3; 3 到 7 之间的为 0.3,大于 7 的为 0.4。
  • @Valentino 这基本上就是我在编辑中加入的苹果和橙子

标签: java android arraylist multidimensional-array random


【解决方案1】:

假设按偏好设置,您的意思是设置一些项目以在多次运行中获得更多选择。

假设您有项目 0,1,2,3,4,5,6,7,8,9

像这样分组

组 1(偏好 2 - 低偏好)0,1,2,3,4,5,6,7,8,9

第 2 组(偏好 1 - 中等偏好)0,1,2,3,4,5,6

第 3 组(偏好 0 - 高偏好)0,1,2,3

现在首先选择随机组 (1,2,3),然后选择组中的项目。

如您所见,高偏好 0、1、2、3 的机会多于中等和低。

【讨论】:

  • 好的,但是有了这个,那些偏好低的人会被选中吗?我有时也希望他们被选中
  • 是的..如果你选择第 1 组,那么低偏好有机会被选中.. 最重要的是有多少组,组中有多少项目,更重要的是这些组中有哪些项目.
  • 因此,我将不得不根据我想要的偏好级别从不同的组中进行选择,例如如果我想要中等偏好,我将从第 2 组中选择?我只是想了解您的算法。如果是这样的话,那真的不会很好,因为我需要的是从一组项目中挑选的东西。
  • 如果您必须选择两次随机选择,这将很简单。否则,您必须采用多种随机选择技术.. 偏好较高的项目应选择较少的数量来限定选择,而偏好较少的项目应获得更多的次数。它将再次包含更多运行。
猜你喜欢
  • 2018-07-25
  • 1970-01-01
  • 1970-01-01
  • 2013-05-28
  • 1970-01-01
  • 2011-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多