Python循环中的神秘Bug?

时间:2018-02-23 23:45:57

标签: python loops for-loop random

所以,当我在代码中遇到这个难以理解的错误时,我正在研究一些基本的财务,试图模拟一些随机的股票价格路径。我尝试在嵌套循环中多次print出一个数字,但由于某种原因,数字会有所不同。

到目前为止我的代码:

# Imports.

%matplotlib inline
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from math import *

# Error-producing section - randnorm holds a 10x10 vector of normally distributed 
# random numbers, used in calculating my price path.

sims = 5
intervals = 5
r=.02
T=1
sigma=.15

paths = [[1]*intervals]*sims
randnorm = [[np.random.normal() for x in range(10)] for y in range(10)]
# print(randnorm)

for i in range(sims):
    for j in range(1,intervals):
        paths[i][j] = paths[i][j-1] * exp((r - .5*sigma**2)*(T/intervals) + sqrt(T/intervals)*randnorm[i][j-1])
        print(paths[0][1])

我知道我之前的代码出了问题,所以我尝试通过在每个循环中打印来调试,我得到了这个,

0.5937221173702402
0.5937221173702402
0.5937221173702402
0.5937221173702402
1.4849274521869171
1.4849274521869171
1.4849274521869171
1.4849274521869171
0.860018700453769
0.860018700453769
0.860018700453769
0.860018700453769
1.0709782525755074
1.0709782525755074
1.0709782525755074
1.0709782525755074
0.7184834195858915
0.7184834195858915
0.7184834195858915
0.7184834195858915

是什么给出的?我真的不知道我在哪里错了。它不是我的随机数,它们都是不同的,或者是索引问题。

0 个答案:

没有答案