FRACTRAN
둘러보기로 이동
검색으로 이동
틀:위키데이터 속성 추적 FRACTRAN은 수학자 존 호턴 콘웨이가 고안한 난해한 프로그래밍 언어이다. FRACTRAN 프로그램은 양의 분수들로 이루어진 하나의 목록의 형태이다. 이 프로그램은 다음의 규칙으로 자연수 입력값 n을 갱신하며 작동한다.
- 목록의 분수들 중에서 nf가 자연수인 가장 첫번째 분수가 f일 때, 입력값 n을 nf로 바꿔쓴다.
- 더 이상 nf가 자연수인 분수 f가 없을때까지 위 과정을 반복한 후, 프로그램을 정지한다.
간단한 FRACTRAN 프로그래밍 예제
FRACTRAN 프로그램은 괴델 넘버링을 사용해 입력값과 출력값을 하나의 소인수분해로 표현한다. 예를 들어 a=2, b=1, c=1 을 입력하면
와 같은 형태로 표현한다
덧셈 프로그램
a와 b를 입력하면 a+b를 출력하는 프로그램은 다음과 같다
이 프로그램은 다음 알고리즘을 따른다.
상태 행동 2의 지수>0 2의 지수에서 1을빼고
3의 지수에 1을 더한다
2의 지수 = 0 정지
a와 b를 입력하면 다음과 같은 소인수분해 가 입력된다, 이 프로그램은 다음과 같은 수열 , ...을 생성하다가, 결국에 곧, 를 출력한다.
뺄셈 프로그램
a와 b를 입력하면 a-b를 출력하는 프로그램은 다음과 같다.
최댓값 구하기 프로그램
a와 b를 입력하면 a와 b중 더 큰 값을 출력하는 프로그램은 다음과 같다
소수 생성 프로그램
다음은 존 콘웨이가 제시한 소수 생성 프로그램이다.
n=2를 입력하면,이 프로그램은 다음과 같은 수열
- 2, 15, 825, 725, 1925, 2275, 425, 390, 330, 290, 770, ... 틀:OEIS
을 생성하다가, 2의 소수 거듭제곱을 포함한다.
곱셈 프로그램
두 자연수 a,b를 입력했을 때, ab를 출력하는 프로그램은 다음과 같다.

피보나치 프로그램
피보나치 수열을 생성하는 프로그램은 다음과 같다.