我想用您的支持來解決這個問題。 假設變量中有一個名爲$ ar的數組,並且在該數組中存在5個數字,所以我想通過Pascal或PHP編程語言計算這些數字的幾何平均值。我能怎麼做 ?如何計算幾何平均值(pascal或php)
0
A
回答
1
這裏是PHP
版本:
function geometric_average($a) {
foreach($a as $i=>$n) $mul = $i == 0 ? $n : $mul*$n;
return pow($mul,1/count($a));
}
//usage
echo geometric_average(array(2,8)); //Output-> 4
1
在 「標準」 Pascal
可能的解決辦法:
program GeometricAvarage;
const SIZE = 5;
function GeoAvg(A:array of real):real;
var
avg: real;
i: integer;
begin
avg := 1;
for i:=0 to (SIZE) do
avg := avg * A[i];
avg :=Exp(1/SIZE*Ln(avg));
Result:=avg;
end;
begin
var
ar: array [1..SIZE] of real :=(1,2,3,4,5);
writeln('Geometric Avarage = ', GeoAvg(ar)); {Output should be =~2.605}
readln;
end.
如果你想使用動態數組這應該在Delphi
或ObjectPascal
例如來完成。
0
對於有問題的人,正如我在PHP答案的評論中指出的那樣,這個答案可能不適合每個人,特別是那些希望找到大數或大數的幾何平均數/平均數的人因爲PHP不會存儲它。
很容易的解決辦法是初始陣列分成塊,計算平均值,然後乘以他們:
function geometricMean(array $array)
{
if (!count($array)) {
return 0;
}
$total = count($array);
$power = 1/$total;
$chunkProducts = array();
$chunks = array_chunk($array, 10);
foreach ($chunks as $chunk) {
$chunkProducts[] = pow(array_product($chunk), $power);
}
$result = array_product($chunkProducts);
return $result;
}
注10
- 這是一個塊元素的數量,你可能會改變,如果你需要這樣做。如果您因此得到INF
,請嘗試降低該值。
相關問題
- 1. 如何計算平均值?
- 2. 如何計算平均值?
- 3. 如何計算平均值?
- 4. 如何計算MS reportviewer/rdlc中的平均計算平均值?
- 5. 以PHP計算平均值
- 6. PHP:計算平均值3
- 7. Rails如何計算幾個選擇框的平均值
- 8. 計算平均值的平均值
- 9. 計算平均值?
- 10. 計算平均值?
- 11. 計算平均值
- 12. 如何計算值的平均間隔?
- 13. 如何計算MDX加權平均值
- 14. 如何計算子集的平均值?
- 15. 如何計算列的平均值
- 16. 如何計算陣列平均值
- 17. 如何計算列的平均值?
- 18. R:如何使sapply計算平均值?
- 19. 如何計算matlab中的平均值
- 20. 如何計算月平均值?
- 21. 如何計算Spark RDD的平均值?
- 22. AWK計算平均或零
- 23. 如何計算XPath或XQuery中的加權平均值?
- 24. 如何計算在php中的列的平均值
- 25. 如何計算使用PHP的日期的平均值
- 26. 如何計算MySQL中的計算平均值?
- 27. VBA計算平均值
- 28. Rails計算平均值belongs_to
- 29. java計算平均值
- 30. 計算實際平均值
非常感謝,這對我來說很有用,誰能在pascal上做到這一點? – xaal
@ user1405203:如果您瞭解該算法,則可以使用支持浮點數學的任何語言來實現該算法。你有沒有嘗試自己寫一個帕斯卡版本? –
請注意,'N'數字的幾何平均值只是所有數字乘積的第N個根。 –