【发布时间】:2012-05-29 11:58:11
【问题描述】:
我们有按钮。用户单击按钮并接收 action1 或 action2 取决于变量 percent_to_action2(从 0 到 100)。给他action1或action2的最简单方法是基于rand() % 100并与percent_to_action2比较。
但问题是,如果例如。 perfect_to_action = 50 无法保证在第一次随机 action1 用户将获得 action2(通过 rand())。我正在寻找避免许多重复动作的方法。请建议如何根据之前的事件/或所有事件更准确地计数。带有示例和 cmets。目标是避免 rund() 可以给出的重复动作过多。例如百分比 = 50 rand() 可以给出 10/10 action2!
ps。 perfect_to_action可以随时更改。
pps。对不起我的英语。
我的代码:
int num_rand = (rand() % 100 ) + 1; // from 1 to 100
if ( num_rand <= current_percent_to_action2 )
{
// action 1
} else {} // action2
我想要的例子:
百分比 = 50: action1 比 action2 比 action1 比 action2 等等。
百分比 = 33: (首先由兰特) 如果第一个 action1 比 action1 比 action2 比 action1 比 action1 比 action2 等等。
【问题讨论】:
-
您已经向我们提供了您当前的模型,但您没有告诉我们您正在建模什么。这些动作是什么? What is your goal?
-
这是作业吗?考虑这样标记。这可能会导致人们有更多的耐心。我现在觉得这个问题难以理解
-
所以你想保证他们随机得到一个之后,下一个按钮就会给另一个?
-
结果分布的实际要求是什么?它显然不是随机的,因为随机数没有记忆,你每次都可以得到 action1,这仍然很好,因为下一次它可能是 action2。首先决定你想要什么。然后编码就更容易了。
-
那么什么是好的?您的规范目前是矛盾的,您不能提供反对它。您需要一个定义可接受结果的规范。在这里查看stackoverflow.com/q/2060774/1002025 进行类似讨论。