- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经用 C++ 和 Python 实现了一维随机游走;然而,在这两个程序中,预期值都不是 sqrt(N)。我想知道我的代码中是否存在逻辑错误或某些隐藏因素导致我的结果一直很低。
对于那些不熟悉随机游走的人来说,预期的 RMS 值为 sqrt(N)。在此处找到更多信息:http://www.mit.edu/~kardar/teaching/projects/chemotaxis(AndreaSchmidt)/random.htm
我一直得到大约 80% 的 sqrt(N),例如:
N = 100,结果 = 80,79,81,78...
N = 25,结果 = 3.9、4.1、4.2、3.8...
代码如下:
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <math.h>
float random_walk(int i);
float checkrand(int i);
using namespace std;
int main(int argc, char* argv[]){
srand(time(NULL));
float absolute = 0;
int trials = 1000;
for(int i=0; i<trials; i++){
absolute += sqrt(pow(random_walk(atoi(argv[1])),2));
}
cout<<absolute/trials<<endl;
}
float random_walk(int i){
float walk = 0;
for(int j=0; j<i; j++){
if(rand()%2 == 0){
walk--;
}
else{
walk++;
}
}
return walk;
}
我的 python 代码也得到了相同的输出。
import random
def rand_walk():
walk = 0
for i in range(9):
rand = random.randint(0,1)
if(rand == 0):
walk = walk + 1
else:
walk = walk - 1
return walk
absolute = 0.0
numtrial = 100
for j in range(numtrial):
walk = rand_walk()
absolute = absolute + (walk**2)**(1/2.0)
print "Average Absolute Distance ", absolute/numtrial
我期望得到 sqrt(n) 但总是得到的更少,这让我怀疑我是不是做错了什么或者想错了问题。
最佳答案
我主要使用Python,所以我会用Python来回答。
你用 absolute = absolute + (walk**2)**(1/2.0)
计算的是 sqrt(d^2) 的总和,但是你之前必须取平均值RMS 的 sqrt。
d2_list = []
for j in range(numtrial):
walk = rand_walk(N)
# absolute = absolute + (walk**2)**(1/2.0)
d2_list.append(walk**2)
result = (sum(d2_list) / len(d2_list))**(1/2.)
print "Average Absolute Distance ", result
关于python - 一维随机游走期望值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48255243/
在阅读了有关我的应用程序的一些统计数据后,我发现更新 75% 的用户需要一个多月的时间。由于所有更新都非常重要,因此我提出了一个应用内警报,告诉用户有一个待处理的更新。 有一个包含实际应用版本 (18
我想知道 RSpec 中是否存在此功能。我在调查时似乎找不到任何结果。 我想做的是可以像这样在 Jest 测试中完成的事情: // This is a Jest expectation expect(
我正在使用 FakeItEasy 伪造一些 Entity Framework 调用,以确保正确映射一堆奇怪的遗留数据库表。 我需要断言,正在将具有匹配特定 DeliveryAddress 的发票的客户
我已经尝试并试图让它发挥作用。 documentation充其量是简洁的: resetExpectations(); - 重置所有请求预期,但保留所有后端定义。通常,当您想要重用 $httpBacke
概率密度和“手动”平均值的计算如下: 我将概率密度函数编码为: myfunc = 0 & x = 0.5 & x = 1 & x < 2, 0.8*(x-1), 0))) } 我知道 EV 是加权积分
我正在将一个模块混合到一个邮件程序中并将其添加为助手,以便在 View 中可以访问它。我需要测试是否从 View 中调用了正确的辅助方法(以便在电子邮件中包含跟踪像素),但 Rspec 似乎不起作用:
我需要一些解析 JSON 文件的帮助。我尝试了几种不同的方法来获取我需要的数据。下面是代码示例以及 JSON 数据的一部分,但是当我运行代码时,出现上面列出的错误。 JSON 中有 500K 行文本,
我想通过 API 从这个 url https://api.hooktheory.com/v1/users/auth 获取一些数据 我可以用 key 输入它,但是一旦我想请求一些数据,它就无法工作,因为
当我在 Ubuntu 16.04 上运行 python 脚本时,出现以下错误。 当我运行相同的代码但不确定哪个包未正确安装时,它在 Windows 上运行良好。 import subprocess i
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我是一名优秀的程序员,十分优秀!