몬테카를로에서 Nim을 보자.
7496 단어 Nim
첫 Qiita 데뷔입니다.
공부하는 것이 현대적인 언어로 시도하고 싶습니다.
오늘은 Nim
오늘은 Nim에서 자주 있는 몬테카를로법을 써 봅니다.
Nim은 프로그램 언어 중 하나입니다.
외형 Python처럼 C/C++에 가까운 속도를 내는 로망 넘치는 언어입니다.
알게 된 계기는 하기 사이트 우연히 들여다 본 후입니다.
요즘 유행하는 언어들(그 외)로 벤치마크 (Dart, Go, Julia, Nim, Python, Rust 등)
쓰자 (Nim)
라라라라라고 써 이런 느낌이 듭니다.
#monte.nim
import random
import system
const NUM=100000000
if isMainModule :
var x,y:float64
var counter=0
for i in countup(0, NUM):
x=random(1.0)
y=random(1.0)
if x*x+y*y < 1.0:
counter+=1
var pi=4.0*float64(counter)/float64(NUM)
echo pi
system.programResult = 0
var로 변수를 선언한다는 부분을 무시하면 어쨌든 파이썬처럼 보이네요.
글을 쓰자 (Python)
#monde.py
import random
NUM = 100000000
def monte():
counter = 0
for i in range(NUM):
x = random.random()
y = random.random()
if x*x+y*y < 1.0:
counter += 1
pi = 4.0*counter/NUM
print(pi)
def main():
monte()
if __name__ == '__main__':
main()
별로 변하지 않네요. 이것이 Nim의 우리 중 하나라고 생각합니다.
여러분도 써 봅시다.
SublimeText
Editor는 각 취향의 것을 선택하면 되지만, 여기에서는 SublimeText를 사용해 보겠습니다.Cmd+Shift+p
를 눌러 패키지 컨트롤의 인스톨을 선택해 Nim과 치면 필요한 NimLime
라는 패키지가 나오므로 그것을 설치합시다. SublimeText를 다시 시작하고 Nim 코드를 입력하면 코드가 구문 강조 표시됩니다. 보존할 때마다 신택스의 체크가 들어가 여기가 이상해요등이라고 가르쳐 줍니다.
움직여 보자.
Nim은 설치해 둡시다. 이야기는 그 때입니다.
가장 편한 것은 Mac의 사람은 brew install nim
Windows의 사람은 솔직하게 공식 홈페이지의 인스톨 방법에 따르면 좋다.
추기(2018/06/28):Linux,Mac의 인스톨은 htps : // 기주 b. 코 m / m96 / 쵸오세 m 의 choosenim 를 사용하면 편리합니다.
실행은 간단하고 Cmd + B로 빌드와 실행을 해줍니다. 쉽습니다.
동작 예(Nim)
아래 첨부와 같이 됩니다(Nim Version 0.17.0 MacBook 12-inch 초대).
동작 예 (Python)
아래의 첨부와 같이 됩니다(Python 3.5.2 MacBook 12-inch 초대).
Nim 빠르네요.
모토 하야쿠 데키 마스 요네?
오샤르트 오리데스네. 최적화 옵션을 사용합시다.
그리고 time으로 측정해 봅시다.
$nim c -d:release monte.nim
$time ./monte
이봐. 빨라졌습니다.
파이썬 '게세누'
100초도 걸리면 할 수 없기 때문에 이것에 대해서는 또 이번 접할 예정입니다.
여기에 썼습니다.
C++의 경우
관심이 있다면 꼭 시도해보십시오.
내 환경에서는 솔직하게 쓰고 clang++에 의한 최적화 옵션을 넣고 3 초 정도 걸립니다.
여기에 썼습니다.
기타 Reference
몬테카를로법이나 Python, Go에서의 구현예에 대해서는
[1] Go와 Python과 Grumpy의 속도 벤치 마크 ~ Google의 트랜스 파일러는 얼마나 빠릅니까? ~
등을 참고로 하면 좋다(이 기사 자체는 트랜스파일러에 주안을 두고 있습니다).
그리고 조사해 보면 알 수 있습니다만 [1]에 대한 추가 검증으로서
[2] Re : Go, Python 및 Grumpy의 속도 벤치 마크
되는 기사도 존재합니다. 불행히도 내 환경에서는 Grumpy가 움직이지 않았습니다. . .
Reference
이 문제에 관하여(몬테카를로에서 Nim을 보자.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/SatoshiTerasaki/items/7aa6490ec3896e8b0929
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
오늘은 Nim에서 자주 있는 몬테카를로법을 써 봅니다.
Nim은 프로그램 언어 중 하나입니다.
외형 Python처럼 C/C++에 가까운 속도를 내는 로망 넘치는 언어입니다.
알게 된 계기는 하기 사이트 우연히 들여다 본 후입니다.
요즘 유행하는 언어들(그 외)로 벤치마크 (Dart, Go, Julia, Nim, Python, Rust 등)
쓰자 (Nim)
라라라라라고 써 이런 느낌이 듭니다.
#monte.nim
import random
import system
const NUM=100000000
if isMainModule :
var x,y:float64
var counter=0
for i in countup(0, NUM):
x=random(1.0)
y=random(1.0)
if x*x+y*y < 1.0:
counter+=1
var pi=4.0*float64(counter)/float64(NUM)
echo pi
system.programResult = 0
var로 변수를 선언한다는 부분을 무시하면 어쨌든 파이썬처럼 보이네요.
글을 쓰자 (Python)
#monde.py
import random
NUM = 100000000
def monte():
counter = 0
for i in range(NUM):
x = random.random()
y = random.random()
if x*x+y*y < 1.0:
counter += 1
pi = 4.0*counter/NUM
print(pi)
def main():
monte()
if __name__ == '__main__':
main()
별로 변하지 않네요. 이것이 Nim의 우리 중 하나라고 생각합니다.
여러분도 써 봅시다.
SublimeText
Editor는 각 취향의 것을 선택하면 되지만, 여기에서는 SublimeText를 사용해 보겠습니다.
Cmd+Shift+p
를 눌러 패키지 컨트롤의 인스톨을 선택해 Nim과 치면 필요한 NimLime
라는 패키지가 나오므로 그것을 설치합시다. SublimeText를 다시 시작하고 Nim 코드를 입력하면 코드가 구문 강조 표시됩니다. 보존할 때마다 신택스의 체크가 들어가 여기가 이상해요등이라고 가르쳐 줍니다.움직여 보자.
Nim은 설치해 둡시다. 이야기는 그 때입니다.
가장 편한 것은 Mac의 사람은
brew install nim
Windows의 사람은 솔직하게 공식 홈페이지의 인스톨 방법에 따르면 좋다.추기(2018/06/28):Linux,Mac의 인스톨은 htps : // 기주 b. 코 m / m96 / 쵸오세 m 의 choosenim 를 사용하면 편리합니다.
실행은 간단하고 Cmd + B로 빌드와 실행을 해줍니다. 쉽습니다.
동작 예(Nim)
아래 첨부와 같이 됩니다(Nim Version 0.17.0 MacBook 12-inch 초대).
동작 예 (Python)
아래의 첨부와 같이 됩니다(Python 3.5.2 MacBook 12-inch 초대).
Nim 빠르네요.
모토 하야쿠 데키 마스 요네?
오샤르트 오리데스네. 최적화 옵션을 사용합시다.
그리고 time으로 측정해 봅시다.
$nim c -d:release monte.nim
$time ./monte
이봐. 빨라졌습니다.
파이썬 '게세누'
100초도 걸리면 할 수 없기 때문에 이것에 대해서는 또 이번 접할 예정입니다.
여기에 썼습니다.
C++의 경우
관심이 있다면 꼭 시도해보십시오.
내 환경에서는 솔직하게 쓰고 clang++에 의한 최적화 옵션을 넣고 3 초 정도 걸립니다.
여기에 썼습니다.
기타 Reference
몬테카를로법이나 Python, Go에서의 구현예에 대해서는
[1] Go와 Python과 Grumpy의 속도 벤치 마크 ~ Google의 트랜스 파일러는 얼마나 빠릅니까? ~
등을 참고로 하면 좋다(이 기사 자체는 트랜스파일러에 주안을 두고 있습니다).
그리고 조사해 보면 알 수 있습니다만 [1]에 대한 추가 검증으로서
[2] Re : Go, Python 및 Grumpy의 속도 벤치 마크
되는 기사도 존재합니다. 불행히도 내 환경에서는 Grumpy가 움직이지 않았습니다. . .
Reference
이 문제에 관하여(몬테카를로에서 Nim을 보자.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/SatoshiTerasaki/items/7aa6490ec3896e8b0929
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(몬테카를로에서 Nim을 보자.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/SatoshiTerasaki/items/7aa6490ec3896e8b0929텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)