注册 登录
编程论坛 VFP论坛

各位大神,VFP怎么求数组的几何平均数啊?

jiazhefish 发布于 2022-03-23 09:43, 2080 次点击
各位大神,VFP怎么求数组的几何平均数啊? 我尝试用Excel的geomean 函数,结果不能用!请各位大神帮帮忙吧
11 回复
#2
jiazhefish2022-03-23 10:22
很多人观看了,但是没有回答,难道VFP没有这个功能么?
@吹水佬  吹版快来赐教啊
#3
wengjl2022-03-23 10:32
可以对数组进行循环,把每个数值赋给变量得到和,再除以记录数,就得到平均值了
#4
吹水佬2022-03-23 10:42
以下是引用jiazhefish在2022-3-23 10:22:11的发言:

很多人观看了,但是没有回答,难道VFP没有这个功能么?
@吹水佬  吹版快来赐教啊

算法的东东难搞
是乘积的平方根吧,点算?
#5
jiazhefish2022-03-23 11:07
回复 4楼 吹水佬
只有本站会员才能查看附件,请 登录


这个表中按照zbdm 分别求几何平均数,请问能实现么?
sql 中的“geometric_mean(x)    计算某一列的几何平均数” 好像不能用呢。
#6
jiazhefish2022-03-23 11:09
回复 3楼 wengjl
谢谢指导,我也想过这样算,但是数据量有点大,想看看是不是有现成的函数可用呢
#7
mywisdom882022-03-23 12:29
几何平均数是对各变量值的连乘积开项数次方根。求几何平均数的方法叫做几何平均法。如果总水平、总成果等于所有阶段、所有环节水平、成果的连乘积总和时,求各阶段、各环节的一般水平、一般成果,要使用几何平均法计算几何平均数,而不能使用算术平均法计算算术平均数。根据所拿握资料的形式不同,其分为简单几何平均数和加权几何平均数两种形式。
1.简单几何平均数
只有本站会员才能查看附件,请 登录

2.加权几何平均数
只有本站会员才能查看附件,请 登录
#8
mywisdom882022-03-23 12:30
按网上说的,简单的还好算,加权的,就不知道了
#9
吹水佬2022-03-23 15:21
没验证,不知否
程序代码:

TEXT TO jsCode TEXTMERGE NOSHOW PRETEXT 15
    function pow(x,n){return Math.pow(x,1/n);};
ENDTEXT
sc = CREATEOBJECT("ScriptControl")
sc.Language = "JavaScript"
sc.AddCode(jsCode)
js = sc.CodeObject
SELECT VAL(zbdm) FROM 举例 INTO ARRAY arr
n = ALEN(arr)
m = 1
FOR EACH dm IN arr
    m = m * js.pow(dm,n)
ENDFOR
? m
#10
sych2022-03-23 15:37
declare @T table (col int)
insert into @T
select 3 union all
select 4 union all
select 5 union all
select 6

select
    算术平均数=cast(sum(col)*1./count(col) as decimal(18,4)) ,
    几何平均数=cast(power(exp(sum(log(col))),1.0/count(col)) as decimal(18,4))
from @T

网上搜的SQL,看的懂的改成VFP吧
#11
jiazhefish2022-03-26 14:28
感谢各位大神鼎立相助,问题已解决
#12
my23182022-03-26 16:14
计算较大数或较多数时要考虑乘积是否溢出
1