diff options
author | Lily Lin | 2022-10-25 07:09:05 +0000 |
---|---|---|
committer | Lily Lin | 2022-10-25 07:09:05 +0000 |
commit | 7509f7f46d0511454dccce2d52545c045cb67e57 (patch) | |
tree | 70ab3d3e447e265bf22145a4bc847c9f6f4b5f73 /entries/lilylin/fractran/src/core.rs | |
parent | bea8092ecca8f4bf61a4df88c06f4eeb61ab3a56 (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.rs | 44 |
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>, -{ -} |