【问题标题】:choosing random numbers N time in a day with sum M [duplicate]在一天中选择随机数 N 次,总和为 M [重复]
【发布时间】:2012-04-26 15:13:35
【问题描述】:

可能重复:
Choosing n numbers with fixed sum

我正在用 PHP 为我的 Bux 系统开发一个 Bot。 Bot 应在一天内运行 N 次,并且每次以固定一天用户总数的方式创建变量(随机)K 用户 (M)。
我怎样才能做到这一点? (选择随机数 N 乘以数字总和为 M)。

【问题讨论】:

  • 我不认为它是重复的???你怎么看@Snigger
  • @Truth:我只需要第一个数字,我的选择是离散的。每次我需要一个新号码时,我的M 都会更改(上一个M - 上一个K
  • 这个 PHP 代码会帮助你.....codepad.viper-7.com/knf4h9 ...为你写的,但你的问题已经结束了
  • 这怎么不是重复的?您想生成 N 个具有预先已知的固定值的随机数。这正是链接问题所要求的内容。
  • @Snigger 我还写了一个解决方案。您可以在codepad.org/fcaZgyXm 在线查看它,并在sampsonblog.com/246/n-parts-for-sum-in-php 附上博客

标签: php random bots


【解决方案1】:
<?php
function generate_random_sum($sum = 100)
{
    $out = array();
    while(array_sum($out) !== $sum)
    {
        $out[] = mt_rand(1, ($sum - array_sum($out)));
    }
    return $out;
}

print_r(generate_random_sum(100));

这有帮助吗?

它会给你一个不同的值数组,在你的问题中总计 M。如果有人想随意扩展,不知道如何让它创建 N 数量的用户。

【讨论】:

    猜你喜欢
    • 2011-02-08
    • 2014-09-10
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多