TokigunStudio obfuscation collection

16진법 원주율 계산기

16진법 원주율을 무한히 계산해 주는 프로그램입니다. 재귀 호출을 사용합니다.

코드

Q=lambda o,O:Q(o+1,P([O[1],o*o*O[0]+(2*o+1)*O[1],O[3],o*o*O[2]+
(2*o+1)*O[3]]));P=lambda O:O[0]//O[2]==O[1]//O[3]and(sys.stdout
.write("0123456789ABCDEF"[O[0]//O[2]]),P([16*(O[0]%O[2]),16*(O[
1]%O[3])]+O[2:]))[1]or O;import sys;Q(2,[4,12,1,4])#tokigun2004

사용법

단순히 파이썬 인터프리터를 사용해서 실행하면 됩니다. 무한히 재귀 호출을 하기 때문에 얼마 정도 출력하다가 파이썬 인터프리터가 자동으로 실행을 끊어 버립니다만 처음 500자리 정도는 충분히 볼 수 있습니다.

$ python pihex.py
3243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C89452821E638D0137
7BE5466CF34E90C6CC0AC29B7C97C50DD3F84D5B5B54709179216D5D98979FB1BD1310BA698DFB5A
C2FFD72DBD01ADFB7B8E1AFED6A267E96BA7C9045F12C7F9924A19947B3916CF70801F2E2858EFC1
6636920D871574E69A458FEA3F4933D7E0D95748F728EB658718BCD5882154AEE7B54A41DC25A59B
59C30D5392AF26013C5D1B023286085F0CA417918B8DB38EF8E79DCB0603A180E6C9E0E8BB01E8A3
ED71577C1BD314B2778AF2FDA55605C60E65525F3AA55AB945748986263E8144055CA396A2AAB10B
6B4CC5C341141E8CEA15486AF7C72E993B3EE1411636FBC2A2BA9C55D741831F6CE5C3E169B87931
EAFD6BA336C24CF5C7A325381289586773B8F48986B4BB9AFC4BFE81B6628219361D809CCF
Traceback (most recent call last):
  File "<stdin>", line 1, in <lambda>
  File "<stdin>", line 1, in <lambda>
  File "<stdin>", line 1, in <lambda>
  ...
  File "<stdin>", line 1, in <lambda>
  File "<stdin>", line 1, in <lambda>
  File "<stdin>", line 2, in <lambda>
  File "<stdin>", line 2, in <lambda>
RuntimeError: maximum recursion depth exceeded

참고로 처음의 3243F6A...는 π = 3.243F6A...(16) = 3.1415926...임을 나타냅니다.

재귀호출 한도를 높이려면 코드 앞에 import sys; sys.setrecursionlimit(1000000)를 추가하면 됩니다. 단, 파이썬이 죽어 버려도 책임 못 집니다. :p


지금은 글을 남길 수 없고 이미 남겨진 걸 볼 수만 있습니다.

puzzlet: 제가 써 놓아야 했던 건데... 감사합니다 :) -- 토끼군
2005/02/11 13:58:37

이론적인 배경은 여기에 있습니다. http://www.mathpages.com/home/kmath381.htm

Do it in Funge -> http://puzzlet.org/puzzlet/~Funge/PuzzletChung/PiCalculation 2005/02/11 13:27:52

Copyright © 2004-2005, Kang Seonghoon (Tokigun). All Rights Reserved.
Permanent Link: http://page.tokigun.net/obfuscation/_/pihex.php
Last updated on December 12, 2004. Valid XHTML 1.1 Valid CSS 2