// 生成n个随机数,要求n个数的和等于100
function lessANumber(n, v) {
var i,
s = 0,
r = [],
x = v;
for (i = 1; i < n; i++) {
x = Math.random() * x;
r.push(x.toFixed(0));
s += x;
x = v - s;
}
r.push(x.toFixed(0));
return r;
}
function random(Min,Max){
var Range = Max - Min;
var Rand = Math.random();
return(Min + Math.round(Rand * Range));
} function randnum(n,max){ var arr = [];
if(max > 0){
for(var i = 0;i<n;i++){
var num = 0;
if(i == (n-1)){
num = max;
}else{
if(max <= 0){
num = max = 0;
}else{
num = random(0,max);
max -= num;
}
}
arr.push(num);
}
}
return arr;
}


function foo($n ,$max = 100){
$array = $zero = $normal = [];
for($i=1;$i<=$n;$i++){
$array[] = mt_rand(0,100);
}
$k = $max / array_sum($array); //求出放大系数k
foreach($array as $key => $val){
$value = floor($val * $k); //直接保留整数,以保证下一步的和肯定<100
if($value<1){
$zero[] = $value;
}else{
$normal[] = $value;
}
}
$sum = array_sum($normal);
$diff = $max - $sum; //这个值肯定<100
if(!empty($zero)){ //如果有为0的值
$count = count($zero);
foreach($zero as $z){
$normal[] = $diff / $count;
}
}else{ //随机分配给一个人
$key = array_rand($normal);
$normal[$key] = $normal[$key]+$diff;
}
unset($array,$zero,$sum,$diff);
return $normal;
}

javascript里的Math.random() 函数, 在php里

function random($min = 0, $max = 1)
{
return $min + mt_rand()/mt_getrandmax()*($max-$min);
}

生成n个随机数,要求n个数的和等于100的更多相关文章

  1. [转载]C# Random 生成不重复随机数

    Random 类 命名空间:System 表示伪随机数生成器,一种能够产生满足某些随机性统计要求的数字序列的设备. 伪随机数是以相同的概率从一组有限的数字中选取的.所选数字并不具有完全的随机性,因为它 ...

  2. C# Random 生成不重复随机数

    命名空间:System 表示伪随机数生成器,一种能够产生满足某些随机性统计要求的数字序列的设备. 伪随机数是以相同的概率从一组有限的数字中选取的.所选数字并不具有完全的随机性,因为它们是用一种确定的数 ...

  3. JS生成一个种子随机数(伪随机数)

    原文链接:https://geniuspeng.github.io/2016/09/12/js-random/ 最近有一个需求,需要生成一个随机数,但是又不能完全随机,就是说需要一个种子seed,se ...

  4. JAVA中生成指定位数随机数的方法总结

    JAVA中生成指定位数随机数的方法很多,下面列举几种比较常用的方法. 方法一.通过Math类 public static String getRandom1(int len) { int rs = ( ...

  5. 【原创】开源Math.NET基础数学类库使用(14)C#生成安全的随机数

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...

  6. js 生成m位随机数入门实例

    1.根据时间生成m位随机数,最大13位随机数,并且不能保证首位不为0. 例子: function ran(m) { m = m > 13 ? 13 : m; var num = new Date ...

  7. shell 生成指定范围随机数与随机字符串 .

    shell 生成指定范围随机数与随机字符串         分类:             shell              2014-04-22 22:17     20902人阅读     评 ...

  8. random and password 在Linux下生成crypt加密密码的方法,shell 生成指定范围随机数与随机字符串

    openssl rand -hex n (n is number of characters) LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head ...

  9. C#生成不重复随机数列表

    C#生成不重复(随机数 http://www.jbxue.com/tags/suijishu.html)列表实例的代码.例子: ;             Random rnd = ; i <  ...

随机推荐

  1. [考试反思]0811NOIP模拟测试17:虚无

    (sdfz未参加,也就是一共就51个人) 也不粘具体排名了,只写分数线. []220 []201 []194 [5]181 [10]141 [15]132 [20]122 [25]116 [30]10 ...

  2. websocket socketJs

    springboot实现服务器端消息推送(websocket + sockjs + stomp)   服务器端推送技术在web开发中比较常用,可能早期很多人的解决方案是采用ajax向服务器轮询消息,这 ...

  3. python模块——psutil

    import psutil 内存 mem = psutil.virtual_memory() print(mem) >>> svmem(total=17048064000, avai ...

  4. Linux命令实战(五)

    1.显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度字符的文件或目录. [qiuhom@test ~]$ls -d /etc/[^[:alpha:]][[:alpha:]]* ls: ...

  5. java编程思想第四版第八章习题

    第一题 package net.mindview.polymorphism; //基类-自行车 class Cycle{ } //子类-单轮车 class Unicycle extends Cycle ...

  6. pandas的使用(5)

    pandas的使用(5)-- 缺失值的处理

  7. Kali Rolling 系统配置总结 (Updateing)

    主系统Kali Linux确实好用,继<Kali~2018安装后的配置>之后,自己又全面详细的总结了关于Kali Linux系统安装后的配置,<Kali Rolling 系统配置总结 ...

  8. CSS RESET —— 浏览器样式重置

    CSS Reset 1. CSS Reset为什么存在? 只要您的客户存在使用不同浏览器(ie,firefox,chrome等)的可能,那你就不得不从完美的理想状态回到现实,因为不同核心的浏览器对CS ...

  9. Windows 10上源码编译glog和gflags 编写glog-config.cmake和gflags-config.cmake | compile glog and glags on windows from source

    本文首发于个人博客https://kezunlin.me/post/bb64e398/,欢迎阅读! compile glog v0.3.5 and glags on windows from sour ...

  10. canvas入门,就是这个feel!

    钙素 Canvas 是在HTML5中新增的标签用于在网页实时生成图像,并且可以操作图像内容,基本上它是一个可以用JavaScript操作的位图.也就是说我们将通过JS完成画图而不是css. canva ...