C# 结果不匹配。浮点错误?

C# 结果不匹配。浮点错误?,c#,r,performance,statistics,correlation,C#,R,Performance,Statistics,Correlation,我正在尝试重写将自相关计算为C的acf: 您可以尝试更改此行: autocv = autocv / (N - lag); 为此: autocv = autocv / N; 对于期望值来说,这两个除数中的任何一个都是可以接受的除数,而R显然使用了第二个除数 要在不访问C编译器的情况下查看这一点,我们可以阅读您的表,并通过将C列中的每个值除以N/(N-lag)来调整值,并查看它们是否与R中的值一致 N在这里是47,滞后范围从0到17,因此N-lag是47:30 将上表复制到本地剪贴板后: cr

我正在尝试重写将自相关计算为C的
acf


您可以尝试更改此行:

autocv = autocv / (N - lag);
为此:

autocv = autocv / N;
对于期望值来说,这两个除数中的任何一个都是可以接受的除数,而R显然使用了第二个除数

要在不访问C编译器的情况下查看这一点,我们可以阅读您的表,并通过将
C
列中的每个值除以
N/(N-lag)
来调整值,并查看它们是否与R中的值一致

N
在这里是
47
,滞后范围从0到17,因此
N-lag
47:30

将上表复制到本地剪贴板后:

cr <- read.table(file='clipboard', comment='', check.names=FALSE)
cr$adj <- cr[[1]]/47*(47:30)
max(abs(cr$R - cr$adj))
## [1] 2.2766e-09

cr+1刚刚修改了这个,现在值匹配了。谢谢你指出这一点!是否有任何具体的优化,我可以做,以加快这一点?或者我唯一的赌注是用C实现它,然后从C#调用它?@Legend我对C不太了解,不知道你是否可以优化它,但我相信用C编写它是可能的,它可以提供与R例程相同的性能。没关系。我接受了这个答案。谢谢你抽出时间!向下投票人:请在向下投票前解释为什么这与节目无关。谢谢
autocv = autocv / N;
cr <- read.table(file='clipboard', comment='', check.names=FALSE)
cr$adj <- cr[[1]]/47*(47:30)
max(abs(cr$R - cr$adj))
## [1] 2.2766e-09