Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,8 @@
|
|||
let seq_stern_brocot =
|
||||
let rec next x xs () =
|
||||
match xs () with
|
||||
| Seq.Nil -> assert false
|
||||
| Cons (x', xs') -> Seq.Cons (x' + x, Seq.cons x' (next x' xs'))
|
||||
in
|
||||
let rec tail () = Seq.Cons (1, next 1 tail) in
|
||||
Seq.cons 1 tail
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
let rec gcd a = function
|
||||
| 0 -> a
|
||||
| b -> gcd b (a mod b)
|
||||
|
||||
let seq_index_of el =
|
||||
let rec next i sq =
|
||||
match sq () with
|
||||
| Seq.Nil -> 0
|
||||
| Cons (e, sq') -> if e = el then i else next (succ i) sq'
|
||||
in
|
||||
next 1
|
||||
|
||||
let seq_map_pairwise f sq =
|
||||
match sq () with
|
||||
| Seq.Nil -> Seq.empty
|
||||
| Cons (_, sq') -> Seq.map2 f sq sq'
|
||||
|
||||
let () =
|
||||
seq_stern_brocot |> Seq.take 15 |> Seq.iter (Printf.printf " %u") |> print_newline
|
||||
and () =
|
||||
List.iter
|
||||
(fun n -> seq_stern_brocot |> seq_index_of n |> Printf.printf " %u@%u" n)
|
||||
[1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 100]
|
||||
|> print_newline
|
||||
and () =
|
||||
seq_stern_brocot |> Seq.take 1000 |> seq_map_pairwise gcd |> Seq.for_all ((=) 1)
|
||||
|> Printf.printf " %B\n"
|
||||
Loading…
Add table
Add a link
Reference in a new issue