편집 기록

편집 기록
  • 프로필 엽토군님의 편집
    날짜2021.10.10

    파이썬 랜덤워크에서의 평균거리


    import numpy as np
    import math
    
    print("몇 회 움직이겠습니까?>> ")
    t = int(input())
    print("몇 번(n) 시뮬레이션 하겠습니까?>> ")
    n = int(input())
    RW = list()
    
    for j in range(n): #n번 시뮬레이션
        d = 0
        arr = np.random.randint(2, size= t) # +1, -1 을 정하기 위한 난수(0,1) 발생을 t번 실행
    
        for i in arr: #위에서 나온 난수를 통해 +1, -1을 반복하여 위치d 에 저장
            if i==0:
                d -= 1
            else:
                d += 1
        RW.append(d) #한번 시뮬레이션 했을 때 위치 d를 RW리스트에 저장하여 총 n개의 시뮬레이션 결과를 저장 
    
    
    #원점으로부터 평균 거리 구하기
    
    summ = 0
    for i in RW:                    #t회 이동하는 시뮬레이션을 n 번 했을 때 평균적인 거리(dis) 
        summ += math.sqrt(RW[i]**2)
    dis = summ/len(RW) 
    
    print("거리의 평균: ", dis, "거리의 이론적 평균: ", math.sqrt(t)) 
    

    위와 같이 코드를 짜보았습니다. 랜덤워크에 대해 배웠는데 거리의 이론적 평균은 시행횟수t의 루트값이라고 했습니다.

    따라서 이를 시뮬레이션하기 위해 위와 같은 코드를 짜보았는데 시뮬레이션 횟수(n)이 많아질수록 이론적 평균과 값이 멀어졌습니다. 어느 부분에서 제가 잘못 된건지 여쭙고 싶습니다.

  • 프로필 김태윤님의 편집
    날짜2021.10.10

    파이썬 랜덤워크에서의 평균거리


    //
    import numpy as np
    import math
    
    print("몇 회 움직이겠습니까?>> ")
    t = int(input())
    print("몇 번(n) 시뮬레이션 하겠습니까?>> ")
    n = int(input())
    RW = list()
    
    for j in range(n): #n번 시뮬레이션
        d = 0
        arr = np.random.randint(2, size= t) # +1, -1 을 정하기 위한 난수(0,1) 발생을 t번 실행
    
        for i in arr: #위에서 나온 난수를 통해 +1, -1을 반복하여 위치d 에 저장
            if i==0:
                d -= 1
            else:
                d += 1
        RW.append(d) #한번 시뮬레이션 했을 때 위치 d를 RW리스트에 저장하여 총 n개의 시뮬레이션 결과를 저장 
    
    
    #원점으로부터 평균 거리 구하기
    
    summ = 0
    for i in RW:                    #t회 이동하는 시뮬레이션을 n 번 했을 때 평균적인 거리(dis) 
        summ += math.sqrt(RW[i]**2)
    dis = summ/len(RW) 
    
    print("거리의 평균: ", dis, "거리의 이론적 평균: ", math.sqrt(t)) 
    

    위와 같이 코드를 짜보았습니다. 랜덤워크에 대해 배웠는데 거리의 이론적 평균은 시행횟수t의 루트값이라고 했습니다.

    따라서 이를 시뮬레이션하기 위해 위와 같은 코드를 짜보았는데 시뮬레이션 횟수(n)이 많아질수록 이론적 평균과 값이 멀어졌습니다. 어느 부분에서 제가 잘못 된건지 여쭙고 싶습니다.