zoukankan      html  css  js  c++  java
  • 把一个整数随机折分?比如把100随机折分20分,20分加起来必须等于100

    $all=100;
    /***
     *all 要分配的总数
     *times 要分配的次数
     *max 分配能够达到的最大值
     *min 分配的最小值
     *
     *先采用用户的分配‘最大值’,如果这个分配值大于当前剩余的总数,那这个最大值也就没有意义,就直接用当前剩余的最大值作为参考
     */
    function distribution($all,$times="",$max="",$min=0){
    	if($times=="")return 0;
    	if($max==""){$max=$all;}
    	$num=(int)$times;
    	for($i=0;$i<$num;$i++){
    		if($max>$all){$max=$all;}
    		$tmp=mt_rand($min,$max);
    		$result[]=$tmp;
    		$all-=$tmp;
    		echo $tmp."<br>";
    	}
    	return $result;
    }
    
    $res=distribution($all,20,5,0);
    echo array_sum($res);
    
  • 相关阅读:
    减治算法之寻找第K小元素问题
    OpenGL的版本号历史和发展
    动态注冊监听
    Thinking in Java -- 类型信息RTTI
    Unity3D
    Oracle改动字段类型
    函数定义
    foreach
    数组
    结构体
  • 原文地址:https://www.cnblogs.com/zhiguopingtianxia/p/4554712.html
Copyright © 2011-2022 走看看