function getDivideNumber($number, $total, $index = 2) {
成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務利州,10多年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792
// 取平均數(shù)
$divide_number = floor($number / $total * pow(10, $index)) / pow(10, $index);
$divide_number = number_format($divide_number, $index, '.', '');
// 獲取最后一個數(shù)字
$last_number = $number - $divide_number * ($total - 1);
$last_number = number_format($last_number, $index, '.', '');
// 拼裝平分后的數(shù)據(jù)返回
$number_str = str_repeat($divide_number . ',', $total - 1) . $last_number;
return explode(',', $number_str);
}
$array = getDivideNumber(120, 3, $index = 0);
得到平均分配的數(shù)字數(shù)組,用遍歷后入庫
$arr?=?array(50,60,70,80,90);?//用數(shù)組表示5個同學的成績
$sum?=?array_sum($arr);
echo?'成績總和為:'.$sum;????//array_sum()直接求出總和并輸出顯示,本例中得到350
$con?=?count($arr);????????//count()計算學生數(shù)量,本例中得到5
$ave?=?$sum/$con;
echo?'平均成績?yōu)?'.$ave;????//總成績除去人數(shù)即得到平均成績,本例中得到70
mysql_select_db("my_db",?$con);
$sql="select?avg(ehscore)?from?history";
$query=mysql_query($sql);
echo?$query;
/***********
while($row=mysql_fetch_array($query))
{
echo?"平均數(shù)為".$sql;
}
****************/
mysql_close($con);
select avg(ehscore) from history;查詢出的結果就是平均值,直接輸出就可以了,不需要后面的循環(huán)
大致思路
1)取份數(shù)的平均值
2)根據(jù)允許的各份數(shù)間最大差值,動態(tài)調(diào)整隨機數(shù)范圍,形成各份的數(shù)量
3)最后一份的數(shù)量由前面已經(jīng)分出的決定,以保證各份的總和為指定值
代碼如下:
?php
$total?=?100;?//待劃分的數(shù)字
$div?=?5;?//分成的份數(shù)
$area?=?10;?//各份數(shù)間允許的最大差值
$average?=?round($total?/?$div);
$sum?=?0;
$result?=?array_fill(?1,?$div,?0?);
for(?$i?=?1;?$i??$div;?$i++?){
//根據(jù)已產(chǎn)生的隨機數(shù)情況,調(diào)整新隨機數(shù)范圍,以保證各份間差值在指定范圍內(nèi)
if(?$sum??0?){
$max?=?0;
$min?=?0?-?round(?$area?/?2?);
}elseif(?$sum??0?){
$min?=?0;
$max?=?round(?$area?/?2?);
}else{
$max?=?round(?$area?/?2?);
$min?=?0?-?round(?$area?/?2?);
}
//產(chǎn)生各份的份額
$random?=?rand(?$min,?$max?);
$sum?+=?$random;
$result[$i]?=?$average?+?$random;
}
//最后一份的份額由前面的結果決定,以保證各份的總和為指定值
$result[$div]?=?$average?-?$sum;
//結果呈現(xiàn)
echo?'劃分情況:br';
foreach(?$result?as?$temp?){
echo?$temp,?'br';
}
echo?'總和:',?array_sum(?$result?);
exit;
?
?php
$a=array();
$b=0;
for ($i=0; $i 10 ; $i++) {
$a[$i]=rand(0,100);
$b+=$a[$i];
}$b=$b/10;
print_r($a);
echo"br";
print_r('平均成績'.$b);echo"br";
$max=max($a);
print_r('最高成績'.$max);echo"br";
$min=min($a);
print_r('最低成績'.$min);echo"br";
$c=0;
for ($i=0; $i 10 ; $i++) {
if($a[$i]$b){
$c=$c+1;
}
}
print_r('超過平均值人數(shù)'.$c);echo"br";
純手打不易,望采納