프로그램이 제대로 작동하지 않는 데 문제가 있습니다. 목표는 다음과 같이 동전 뒤집기를 시뮬레이션하는 것입니다.파이썬에서 코인 플립 실험 시뮬레이션
임의의 숫자 시퀀스를 고려하십시오. epsilon_1, epsilon_2, ... , epsilon_N
. 이 시퀀스의 각 용어는 각각 동전 던지기 실험, 머리 또는 꼬리의 결과에 따라 값이 +1
또는 -1
입니다.
# for n = 1,2,...,N:
# flip coin
# if result == "Heads"
# epsilon_{n} = 1
# else:
# epsilon_{n} = -1
내가 각 엡실론의 값을 저장할 : 즉
지금for each n = 1,2,...,N:
epsilon_n = { +1 with probability = 1/2; and -1 with probability = 1/2.
, 나는 나에게이 프로그램을 작성하는 데 도움이되는 몇 가지 사이비 - 코드를 작성 n (따라서 각 n에 대한 실험의 결과)을 배열에 저장합니다.
# array to store outcome of the coin flip
epsilon = np.zeros(N)
# define coin flip experiment
result = [] # result of the experiment
for n in xrange(1, N):
def coin_flip(): #flip coin for each n = 1,...,N
flip = random.randint(0,2)
if (flip == 0):
result = "Heads"
else:
result = "Tails"
return result
if result == "Heads":
epsilon[n] = 1
else:
epsilon[n] = -1
print epsilon
이 프로그램의 출력이 0
을 상기 제 1 항목을 배열하고, 다른 모든 항목 값을 포함 -1
: 여기이를 희망 I 쓴 프로그램이다. 나는 N = 100
을 지정했다.
일부 안내는 필요한 것입니다. 예를 들어, 나는 동전 던지기 실험을위한 함수를 정의하는 것으로 바른 길에 있다고 생각합니다. 실험 결과 (Heads 또는 Tails)를 반환하려면이 값이 필요합니다.이 값은 각각 n = 0,1,...,N
에 대해 발생해야하지만, 그렇게하는 가장 좋은 방법은 확실하지 않습니다. 그렇다면 각각의 코인 플립 결과에 대해 내 프로그램은 +1
또는 -1
값을 epsilon
의 배열에 저장해야합니다. 내 제안 된 함수에 대한 매개 변수로 n
을 포함해야합니까 ?? 나는 올바른 길을 가고 있는가?
모든 도움을 주시면 매우 감사하겠습니다. 미리 감사드립니다!
편집 : 그래서 numpy와 random 같은 라이브러리를 가져 오는 것을 잊지 않았습니다. 이 코드는 원래 코드에 포함되어 있지만 실제로는 더 큰 프로그램의 일부이므로이 코드 세그먼트를 복사하여 붙여 넣으면 및 import numpy
이 누락되었습니다.
'np.random.choice ([1, -1], N)'당신에게 줄 것이다 N 플립 (각각 50 % 확률). 라이브러리 사용을 피하고 있습니까 (운동하는 등)? – ayhan
여기에 올린 코드는 실제로 다른 것을하는 큰 프로그램의 일부이기 때문에 실수로 라이브러리를 생략했습니다. 내 원래 코드가 적절한 라이브러리를 가져 왔습니다. 어쨌든, 정말 고마워! '0'은 기술적으로 정수가 아니므로'[-1,1]'간격에서 제외되므로 제안이 효과가있는 이유는 무엇입니까? – Javier
아니요, 선택할 수있는 목록입니다. 'np.random.choice ([ 'Heads', 'Tails'], N)'을 입력하면'Heads'와'Tails' 배열이 반환됩니다. 'np.random.choice ([ 'a', 'b', 'c'], N)'을 입력하면 동일한 확률로 a, b 또는 c가 선택됩니다. – ayhan