Data update
This commit is contained in:
parent
72eb4943cb
commit
4d5544505c
2347 changed files with 62438 additions and 16737 deletions
48
Task/Calkin-Wilf-sequence/C-sharp/calkin-wilf-sequence.cs
Normal file
48
Task/Calkin-Wilf-sequence/C-sharp/calkin-wilf-sequence.cs
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
IEnumerable<int> Fusc()
|
||||
{
|
||||
yield return 1;
|
||||
var n = 1;
|
||||
|
||||
foreach (var f in Fusc())
|
||||
{
|
||||
yield return n + f;
|
||||
yield return f;
|
||||
n = f;
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerable<int> ContFrac(int n, int d)
|
||||
{
|
||||
while (d != 0)
|
||||
{
|
||||
yield return n / d;
|
||||
(n, d) = (d, n % d);
|
||||
}
|
||||
}
|
||||
|
||||
Console.WriteLine("First 20 terms of the Calkin-Wilf sequence:");
|
||||
var n = 1;
|
||||
|
||||
foreach (var f in Fusc().Take(20))
|
||||
{
|
||||
Console.Write($"{n}/{f} ");
|
||||
n = f;
|
||||
}
|
||||
|
||||
Console.WriteLine();
|
||||
var bits = 0L;
|
||||
var bit = 1L;
|
||||
var shift = 0;
|
||||
|
||||
foreach (var c in ContFrac(83116, 51639))
|
||||
{
|
||||
for (var i = 0; i < c; i++)
|
||||
{
|
||||
bits |= bit << shift;
|
||||
shift++;
|
||||
}
|
||||
|
||||
bit = 1 - bit;
|
||||
}
|
||||
|
||||
Console.WriteLine($"83116/51639 is at position {bits} in the sequence");
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
subr first
|
||||
n = 1 ; d = 1
|
||||
n = 1
|
||||
d = 1
|
||||
.
|
||||
proc next . .
|
||||
proc next .
|
||||
n = 2 * (n div d) * d + d - n
|
||||
swap n d
|
||||
.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue