相关疑难解决方法(0)

用新的随机生成的值替换数组中的重复值

我有一个函数(来自之前没有回答的问题),它创建了一个包含n个值的数组.数组的总和等于$ max.

function randomDistinctPartition($n, $max) {
  $partition= array();
  for ($i = 1; $i < $n; $i++) {
    $maxSingleNumber = $max - $n;
    $partition[] = $number = rand(1, $maxSingleNumber);
    $max -= $number;
  }
  $partition[] = $max;
  return $partition;
}
Run Code Online (Sandbox Code Playgroud)

例如:如果我设置$ n = 4和$ max = 30.那么我应该得到以下内容.

array(5, 7, 10, 8);
Run Code Online (Sandbox Code Playgroud)

但是,此功能不考虑重复项和0.我想要 - 并且一直在努力完成 - 是生成一个具有唯一数字的数组,这些数字加起来我的预定变量$ max.没有重复的数字,没有0和/或负整数.

php algorithm combinatorics data-partitioning

5
推荐指数
1
解决办法
1073
查看次数

标签 统计

algorithm ×1

combinatorics ×1

data-partitioning ×1

php ×1