标题:各位大神,VFP怎么求数组的几何平均数啊?
只看楼主
jiazhefish
Rank: 2
等 级:论坛游民
帖 子:64
专家分:28
注 册:2011-9-6
结帖率:100%
已结贴  问题点数:20 回复次数:11 
各位大神,VFP怎么求数组的几何平均数啊?
各位大神,VFP怎么求数组的几何平均数啊? 我尝试用Excel的geomean 函数,结果不能用!请各位大神帮帮忙吧
搜索更多相关主题的帖子: 平均数 结果 VFP 数组 几何 
2022-03-23 09:43
jiazhefish
Rank: 2
等 级:论坛游民
帖 子:64
专家分:28
注 册:2011-9-6
得分:0 
很多人观看了,但是没有回答,难道VFP没有这个功能么?
@吹水佬  吹版快来赐教啊
2022-03-23 10:22
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:5 
可以对数组进行循环,把每个数值赋给变量得到和,再除以记录数,就得到平均值了

只求每天有一丁点儿的进步就可以了
2022-03-23 10:32
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用jiazhefish在2022-3-23 10:22:11的发言:

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

算法的东东难搞
是乘积的平方根吧,点算?
2022-03-23 10:42
jiazhefish
Rank: 2
等 级:论坛游民
帖 子:64
专家分:28
注 册:2011-9-6
得分:0 
回复 4楼 吹水佬
举例.zip (45.16 KB)


这个表中按照zbdm 分别求几何平均数,请问能实现么?
sql 中的“geometric_mean(x)    计算某一列的几何平均数” 好像不能用呢。
2022-03-23 11:07
jiazhefish
Rank: 2
等 级:论坛游民
帖 子:64
专家分:28
注 册:2011-9-6
得分:0 
回复 3楼 wengjl
谢谢指导,我也想过这样算,但是数据量有点大,想看看是不是有现成的函数可用呢
2022-03-23 11:09
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:5 
几何平均数是对各变量值的连乘积开项数次方根。求几何平均数的方法叫做几何平均法。如果总水平、总成果等于所有阶段、所有环节水平、成果的连乘积总和时,求各阶段、各环节的一般水平、一般成果,要使用几何平均法计算几何平均数,而不能使用算术平均法计算算术平均数。根据所拿握资料的形式不同,其分为简单几何平均数和加权几何平均数两种形式。
1.简单几何平均数

2.加权几何平均数
2022-03-23 12:29
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
按网上说的,简单的还好算,加权的,就不知道了
2022-03-23 12:30
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 
没验证,不知否
程序代码:
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
2022-03-23 15:21
sych
Rank: 3Rank: 3
等 级:论坛游侠
威 望:6
帖 子:179
专家分:183
注 册:2019-10-11
得分:0 
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吧
2022-03-23 15:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-508629-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.168151 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved