以随机顺序生成事件PHP

时间:2014-08-21 03:22:21

标签: php events random

基本上我想做的是:

我有一个数字(即9),最大范围是36。 我希望在36种可能性中的9种中生成事件(正好是9/36,不多也不少) 数字9来自一个变量,36是36。 我不希望我的9次机会在开始时或最后发生。我希望它是随机的。

实施例。 我有36个机会中有9个“开枪”。

尝试1/36 - 小姐

尝试2/36 - 拍摄

尝试3/36 - 小姐等...,一直到36个可能的9个镜头。

顺序并不重要,我只需要在36次尝试中随机发生所有9次。

感谢任何帮助。

编辑:对不起,如果我是ambiguos。这是我的问题所在:

我有一个事件,比如说“射击”。 我希望它发生$ occurace = 9次,但随机发生36次可能发生的机会。

像我说的那样:

试试看 - 小姐 试试 - 拍摄 try3 - shot ... 尝试 - 小姐 try36 - 小姐

再次运行代码,我想要改变,例如:

试试 - 拍摄 试试 - 小姐 try3 - shot ... 尝试 - 小姐 try36 - shot

我需要在36次机会中随机发生9个事件,但我希望它们全部发生,而不是没有或超过9个

1 个答案:

答案 0 :(得分:1)

你走了:

$spots = array();

while (count($spots) < 9) {
    $rand = rand(1,36);
    if (!isset($spots[$rand])) {
        $spots[$rand] = TRUE;
    }
}

$spots = $spots + array_fill(1, 36, FALSE);
ksort($spots);

总会有9个真实/拍摄点,其余的将是FALSE / Miss点。它是真正随机的,它们可以在数组中的任何位置。

数组foreach中的简单$spots会告诉您何时“拍摄”