aboutsummaryrefslogtreecommitdiff
path: root/entries/lilylin/fractran/src/core.rs
diff options
context:
space:
mode:
authorLily Lin2022-10-25 07:09:05 +0000
committerLily Lin2022-10-25 07:09:05 +0000
commit7509f7f46d0511454dccce2d52545c045cb67e57 (patch)
tree70ab3d3e447e265bf22145a4bc847c9f6f4b5f73 /entries/lilylin/fractran/src/core.rs
parentbea8092ecca8f4bf61a4df88c06f4eeb61ab3a56 (diff)
Much simpler fractran program
Why did I commit the complex one in the first place...
Diffstat (limited to 'entries/lilylin/fractran/src/core.rs')
-rw-r--r--entries/lilylin/fractran/src/core.rs44
1 files changed, 0 insertions, 44 deletions
diff --git a/entries/lilylin/fractran/src/core.rs b/entries/lilylin/fractran/src/core.rs
deleted file mode 100644
index 26e1a67..0000000
--- a/entries/lilylin/fractran/src/core.rs
+++ /dev/null
@@ -1,44 +0,0 @@
-use num_traits::Pow;
-
-pub type FracSize = u16;
-
-#[derive(Debug)]
-pub struct Program {
- pub fractions: Vec<(FracSize, FracSize)>,
- pub initial: u64,
-}
-
-impl Program {
- // http://lomont.org/posts/2017/fractran/
- // A lesser known Conway FRACTRAN program is FIBONACCIGAME:
- // `{17/65, 133/34, 17/19, 23/17, 2233/69, 23/29, 31/23, 74/341, 31/37, 41/31, 129/287, 41/43, 13/41, 1/13, 1/3}`
- // Starting with `78*5^(n-1)`, it halts on `2^Fn` where Fn is the nth [Fibonacci number]
- pub fn fibonacci(i: u32) -> Program {
- Program {
- fractions: vec![
- (17, 65),
- (133, 34),
- (17, 19),
- (23, 17),
- (2233, 69),
- (23, 29),
- (31, 23),
- (74, 341),
- (31, 37),
- (41, 31),
- (129, 287),
- (41, 43),
- (13, 41),
- (1, 13),
- (1, 3),
- ],
- initial: 78 * 5u64.pow(i),
- }
- }
-}
-
-pub trait FractranEngine<Value>: IntoIterator<Item = Value>
-where
- Value: From<u64>,
-{
-}