【发布时间】:2013-09-26 19:59:24
【问题描述】:
全部用 C++ 完成。 假设我有两个数组:
int arrElem[]={1,2,3,4};
int arrPref[]={0,2,3,0};
arrElem 是一个数组,其中包含我必须选择的女巫的元素和一个偏好数组。 prefrence 数组表示,比方说,它是元素数组中相应元素的偏好百分比/10 - 我想说的是:
- 元素 arrElem[0]=1 没有偏好
- 元素 arrElem[1]=2 有 20% 的偏好
- 元素 arrElem[2]=3 有 30% 的偏好
- 元素 arrElem[3]=4 没有偏好
首选项没有更高的限制,但如果它是 10 或更多,则会自动选择它对应的元素。 我似乎无法找到一种方法来编写一个随机化器来以这种方式选择元素。
编辑:澄清如何计算对象的机会:
(100% - (集合中所有偏好的总和*10)/(集合中元素的数量))+(元素偏好*10) 当(集合中所有偏好的总和*10)大于 100 时,真的不知道该怎么办
【问题讨论】:
-
如果有多个优先级为 10 或更高的元素会发生什么?
-
你是说 20% 的时间应该选择元素 2?
-
@Nobody - 在他们之间随机挑选
-
每个元素的基本几率是多少? 20% 应该等于 base + 20% 还是 base * 1.2 值?计算出您的比例,然后您可以生成该范围的随机数以确定实际选择的元素是什么。