본문 바로가기

확률

(3)
0과 1 사이에서 랜덤하게 뽑은 숫자를 평균적으로 몇 번 더해야 1보다 커질까요? # 0과 1 사이에서 랜덤하게 뽑은 숫자를 평균적으로 몇 번 더해야 1보다 커질까요? import numpy as np import math import random def test(): s = 0 cnt = 0 while s < 1: r = random.random() s += r cnt += 1 return cnt def n_tests(N): tests = [test() for _ in range(N)] # print(tests) m = np.mean(tests) s = np.std(tests) print(m, s, N) def main(): for n in [100, 10000, 1000000, 10000000]: for _ in range(3): n_tests(n) print(math.e) if ..
2의 거듭제곱 (10만승까지) 벤포드 법칙 무식쟁이 방법으로 확인. #!/usr/bin/env python # http://bomber0.byus.net/index.php/2009/07/30/1409 # brute force check twopow = 1 tenpow = 1 cnt = [ 0 for i in range(10) ] pro = [ 0 for i in range(10) ] for i in range(100000): twopow *= 2 if twopow/(tenpow*10) > 0: tenpow *= 10 #d1 = int(("%d"%twopow)[0]) d = twopow/tenpow #if d1 != d: # print twopow cnt[d] += 1 if (i+1)%1000 == 0: print (i+1) print "%d\t%d\t%d\t%d\t%d\..
[Project Euler 213] 30x30 격자 벼룩 http://projecteuler.net/index.php?section=problems&id=213 30x30 크기의 격자에 벼룩이 있다. 최초에 벼룩은 격자 하나당 하나씩 있고, 한 번 종이 울리면, 격자의 사방으로 튈 수 있다. 가장자리에 있는 벼룩은 바깥으로 나갈 수 없다. 종이 울릴 때마다 각 격자에 벼룩이 몇마리 있을지에 대한 확률분포를 색으로 표현하는 걸 만들어 봤다. 문제가 풀릴려면 부동소수점연산에 의한 오차가 문제가 될 것 같으나, 대략적인 것만 보기 위해서, 그런 건 우선 무시하고 만들어 봤다. 10번 종이 울린 후 확률 분포는 다음과 같다. 색이 흐리면 (하얀색에 가까우면) 확률이 낮은 것이다. vc6.0, mfc 로 짜봤으며, 소스는 여기 있다. 대충 짠거라 책임은 지지 않는다. ..