됨?10만개 점 생성하면
9만 4천개 이상이 원안으로 들어가는데
몬테카를로 기법 원주율은 얘기만 들어봤지 정확한 계산은 모르지만, 대략 이론상으로 78%여야하지 않나? 함 찾아봐야겠네.
니가 뭔가 계산을 잘못 했겠지.
x = 0~sqrt(2) 사이에 난수 생성, y = 0 이렇게 지정하고 각도도 난수로 생성해서 회전 시키는 방법으로 함 회전 후에 x나 y가 1보다 크면 다시 만들고
난수 생성기는 뭐 쓰는데? 몬테카를로에 쓰는 난수생성기들은 푼포가 치명적이다 - dc App
난수 생성기 std::random_device std::mt19937_64 std::uniform_real_distribution<double> 이렇게 했어여
뭘 그렇게 이상하게 생성했냐. 그러니까 계산 꼬이겠지. 그냥 x,y를 0~1에서 생성하고 그게 좌표상으로 원점으로부터의 길이가 1이 넘는지 안넘는지 보고 구분하는거야.
1/4원만 하면 그렇게 하겠는데 원을 지정된 갯수로 쪼갠 다음에 쪼개진 부분을 각각의 스레드로 계산하는게 과제라서...
난수는 스레드 안에서 생성해야 함(지정된 영역 안에서)
사각형으로 된걸 쪼개면 쪼겠을때 모양이 다 달라서 사각형이 내접하는 반지름이 sqr(2)짜리 원 만들어서 그걸 기준으로 만듬
수정 했는데 원안에 들어가는게 89퍼나 나옴...
몬테카를로 기법 원주율은 얘기만 들어봤지 정확한 계산은 모르지만, 대략 이론상으로 78%여야하지 않나? 함 찾아봐야겠네.
니가 뭔가 계산을 잘못 했겠지.
x = 0~sqrt(2) 사이에 난수 생성, y = 0 이렇게 지정하고 각도도 난수로 생성해서 회전 시키는 방법으로 함 회전 후에 x나 y가 1보다 크면 다시 만들고
난수 생성기는 뭐 쓰는데? 몬테카를로에 쓰는 난수생성기들은 푼포가 치명적이다 - dc App
난수 생성기 std::random_device std::mt19937_64 std::uniform_real_distribution<double> 이렇게 했어여
뭘 그렇게 이상하게 생성했냐. 그러니까 계산 꼬이겠지. 그냥 x,y를 0~1에서 생성하고 그게 좌표상으로 원점으로부터의 길이가 1이 넘는지 안넘는지 보고 구분하는거야.
1/4원만 하면 그렇게 하겠는데 원을 지정된 갯수로 쪼갠 다음에 쪼개진 부분을 각각의 스레드로 계산하는게 과제라서...
난수는 스레드 안에서 생성해야 함(지정된 영역 안에서)
사각형으로 된걸 쪼개면 쪼겠을때 모양이 다 달라서 사각형이 내접하는 반지름이 sqr(2)짜리 원 만들어서 그걸 기준으로 만듬
수정 했는데 원안에 들어가는게 89퍼나 나옴...