Fractran解释器在Fractran中的实现
在Fractran中的Fractran解释器最初是针对一个已关闭的代码高尔夫问题进行的设计。这段代码尚未经过全面测试,但其核心思想已经实现。Fractran是一种基于分数的编程语言,而此解释器使用1779个分数来进行运算。首先,输入的分数m/n = p_0^a0... p_k^ak需要进行编码,编码过程如下:从1开始,对每个指数ai进行处理:
-
如果ai > 0,则乘以p_2i^ai;
-
如果ai < 0,则乘以p_2i+1^(-ai)。
这样,任何分数都可以被编码为一个正整数。
接下来,给定一个程序(例如:编码的分数F0、F1、...序列),其将被表示为p_0^F0 p1^F1...的形式。Fractran的解释器输入由以下公式给出:2^(程序) 3^(输入) 5,其中程序和输入都按照上述编码方式表示。
例如,在第一个测试问题中,3/2被编码为15,因此程序被编码为2^15;并且数字108则被编码为500。
下载地址
用户评论