FRACTRAN 문서 원본 보기
←
FRACTRAN
둘러보기로 이동
검색으로 이동
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
{{위키데이터 속성 추적}} '''FRACTRAN'''은 수학자 [[존 호턴 콘웨이]]가 고안한 [[난해한 프로그래밍 언어]]이다. FRACTRAN 프로그램은 양의 [[분수]]들로 이루어진 하나의 목록의 형태이다. 이 프로그램은 다음의 규칙으로 [[자연수]] 입력값 n을 갱신하며 작동한다. # 목록의 분수들 중에서 ''nf''가 자연수인 가장 첫번째 분수가 ''f''일 때, 입력값 ''n''을 ''nf''로 바꿔쓴다. # 더 이상 ''nf''가 자연수인 분수 ''f''가 없을때까지 위 과정을 반복한 후, 프로그램을 정지한다. == 간단한 FRACTRAN 프로그래밍 예제 == FRACTRAN 프로그램은 [[괴델 넘버링]]을 사용해 입력값과 출력값을 하나의 [[소인수분해]]로 표현한다. 예를 들어 a=2, b=1, c=1 을 입력하면 : <math> 2^2 \times 3^1 \times 5^1</math> 와 같은 형태로 표현한다 '''덧셈 프로그램''' a와 b를 입력하면 a+b를 출력하는 프로그램은 다음과 같다 : <math>\left( \frac{3}{2} \right)</math> 이 프로그램은 다음 알고리즘을 따른다. : {| class="wikitable" ! ! 상태 ! 행동 |- | align="center" | <math>\frac{3}{2}</math> | 2의 지수>0 | 2의 지수에서 1을빼고<br /> 3의 지수에 1을 더한다 |- | | 2의 지수 = 0 | 정지 |} a와 b를 입력하면 다음과 같은 소인수분해 <math>2^a 3^b</math>가 입력된다, 이 프로그램은 다음과 같은 수열 <math>2^{a-1} 3^{b+1}</math>, <math>2^{a-2} 3^{b+2}</math>...을 생성하다가, 결국에 <math> 3^{a + b} </math> 곧, <math> a+b </math>를 출력한다. '''뺄셈 프로그램''' a와 b를 입력하면 a-b를 출력하는 프로그램은 다음과 같다. <math>\left( \frac{1}{6} \right)</math> '''최댓값 구하기 프로그램''' a와 b를 입력하면 a와 b중 더 큰 값을 출력하는 프로그램은 다음과 같다 : <math>(\frac{5}{6}, \frac{5}{2}, \frac{5}{3})</math> '''소수 생성 프로그램''' 다음은 존 콘웨이가 제시한 소수 생성 프로그램이다. : <math>\left( \frac{17}{91}, \frac{78}{85}, \frac{19}{51}, \frac{23}{38}, \frac{29}{33}, \frac{77}{29}, \frac{95}{23}, \frac{77}{19}, \frac{1}{17}, \frac{11}{13}, \frac{13}{11}, \frac{15}{2}, \frac{1}{7}, \frac{55}{1} \right)</math> n=2를 입력하면,이 프로그램은 다음과 같은 수열 :2, 15, 825, 725, 1925, 2275, 425, 390, 330, 290, 770, ... {{OEIS|id=A007542}} 을 생성하다가, 2의 소수 거듭제곱을 포함한다. :<math>2^2=4,\, 2^3=8,\, 2^5=32,\, 2^7=128,\, 2^{11}=2048,\, 2^{13}=8192,\, 2^{17}=131072,\, 2^{19}=524288,\, \dots</math> {{OEIS|id=A034785}} '''곱셈 프로그램''' 두 자연수 a,b를 입력했을 때, ab를 출력하는 프로그램은 다음과 같다. :<math>\left( \frac{455}{33}, \frac{11}{13}, \frac{1}{11}, \frac{3}{7}, \frac{11}{2}, \frac{1}{3} \right)</math> [[파일:FRACTRANmult0.gif|섬네일|544px|가운데|FRACTRAN프로그램으로 3곱하기2을 계산하는 과정,a=3,b=2를 괴델 수 <math>2^{3}3^{2}</math>로 변환 후 입력하여, 괴델 수 <math>5^{6}</math>,곧 6을 출력한다.]] '''피보나치 프로그램''' [[레오나르도 피보나치|피보나치]] 수열을 생성하는 프로그램은 다음과 같다. :<math>\left( \frac{33}{91}, \frac{13}{11}, \frac{11}{1}, \frac{34}{399}, \frac{19}{17}, \frac{17}{1}, \frac{7}{2}, \frac{5}{187}, \frac{3}{1} \right)</math> == 같이 보기 == * [[콜라츠 추측]] == 각주 == {{각주}} {{참고 자료 시작}} * {{서적 인용|last=Havil|first=Julian|title=Nonplussed!|url=https://archive.org/details/nonplussedmathem00havi|publisher=Princeton University Press|year=2007|isbn=0-691-12056-0}} * {{서적 인용|title=The Ultimate Challenge: the 3x+1 problem|url=https://archive.org/details/isbn_9780821849408|editor=Jeffrey C. Lagarias|last=Conway|first=John|authorlink=John Horton Conway|chapter=FRACTRAN: A simple universal programming language for arithmetic|pages=[https://archive.org/details/isbn_9780821849408/page/249 249]–264|publisher=American Mathematical Society|year=2010|isbn=978-0-8218-4940-8|zbl=1216.68068}} * {{서적 인용|title=Genius At Play - The Curious Mind of John Horton Conway|url=https://archive.org/details/geniusatplaycuri0000robe|last=Roberts|first=Siobhan|chapter=Criteria of virtue|pages=[https://archive.org/details/geniusatplaycuri0000robe/page/115 115]–119|publisher=Bloomsbury|year=2015|isbn=978-1-62040-593-2}} * {{서적 인용|last=Conway|first=John H.|title=Open Problems in Communication and Computation|publisher=Springer-Verlag New York, Inc.|year=1987|isbn=978-1-4612-9162-6}} {{참고 자료 끝}} == 외부 링크 == {{위키공용분류}} * [http://scienceblogs.com/goodmath/2006/10/27/prime-number-pathology-fractra/ "Prime Number Pathology: Fractran"] * {{매스월드|urlname=FRACTRAN|title=FRACTRAN}} * [http://brainwagon.org/?p=2207 ''Prime Number Pathology''] * [http://www.esolangs.org/wiki/Fractran FRACTRAN] - (Esolang wiki) * [https://web.archive.org/web/20130125232746/http://www.dev.gd/20130121-fun-with-john-conways-fractran.html Ruby implementation and example programs] * [https://projecteuler.net/problem=308 Project Euler Problem 308] * [http://malisper.me/2016/06/11/building-fizzbuzz-fractran-bottom/ "Building Fizzbuzz in Fractran from the Bottom Up"] * [https://web.archive.org/web/20180104084828/http://clomont.com/a-universal-fractran-interpreter-in-fractran/ Chris Lomont, "A Universal FRACTRAN Interpreter in FRACTRAN"] [[분류:난해한 프로그래밍 언어]] [[분류:계산 모형]]
이 문서에서 사용한 틀:
틀:OEIS
(
원본 보기
)
틀:각주
(
원본 보기
)
틀:매스월드
(
원본 보기
)
틀:서적 인용
(
원본 보기
)
틀:위키공용분류
(
원본 보기
)
틀:위키데이터 속성 추적
(
원본 보기
)
틀:참고 자료 끝
(
원본 보기
)
틀:참고 자료 시작
(
원본 보기
)
FRACTRAN
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
한국어
보기
읽기
원본 보기
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보