【问题标题】:Function to output probability in PHPPHP中输出概率的函数
【发布时间】:2011-10-08 21:25:20
【问题描述】:

我正在尝试找到一个接受数字并输出预期结果的函数,如下所示:

如果输入=1 那么输出应该是Array{'0','1'}

如果输入=2 那么输出应该是Array{'00','01','10','11'}

如果输入=3 那么输出应该是Array{'000','001','010','011','100','101','110','111'}

等等。类似于抛硬币。

我不知道php中是否有一个函数可以做到这一点,但如果没有,请告诉我它是如何完成的?

【问题讨论】:

  • 你想对结果做什么?只是问问。

标签: php function probability coin-flipping


【解决方案1】:

实际上,这只是二进制符号中从 0 到 2^{input}-1 的数字

$max = pow(2, $input);
$result = array();
for ($i = 0; $i < $max; $i++) {
  $result[] = str_pad(base_convert($i, 10, 2), $input, 0, STR_PAD_LEFT);
}

【讨论】:

  • 如何创建一个字符串,然后将其分割成一个数组作为第二步?只是一个想法。
  • 非常感谢。这正是我想要的。
  • @KingCrunch 它也帮助了我。谢谢!
【解决方案2】:

与@KingCrunch 答案相同,但更简洁:

foreach (range(0, pow(2, $input)) as $i)
{
    $result[] = sprintf('%0' . $input . 'b', $i);
}

或者,如果你不喜欢sprintf

foreach (range(0, pow(2, $input)) as $i)
{
    $result[] = str_pad(decbin($i), $input, 0, STR_PAD_LEFT);
}

【讨论】:

    猜你喜欢
    • 2014-07-04
    • 2014-09-09
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 2011-08-18
    • 1970-01-01
    相关资源
    最近更新 更多