Sync
This commit is contained in:
parent
6f050a029e
commit
776bba907c
3887 changed files with 59894 additions and 7280 deletions
|
|
@ -0,0 +1,23 @@
|
|||
-module( van_der_corput ).
|
||||
|
||||
-export( [sequence/1, sequence/2, task/0] ).
|
||||
|
||||
sequence( N ) -> sequence( N, 2 ).
|
||||
|
||||
sequence( 0, _Base ) -> 0.0;
|
||||
sequence( N, Base ) -> erlang:list_to_float( "0." ++ lists:flatten([erlang:integer_to_list(X) || X <- sequence_loop(N, Base)]) ).
|
||||
|
||||
task() -> [task(X) || X <- lists:seq(2, 5)].
|
||||
|
||||
|
||||
|
||||
sequence_loop( 0, _Base ) -> [];
|
||||
sequence_loop( N, Base ) ->
|
||||
New_n = N div Base,
|
||||
Digit = N rem Base,
|
||||
[Digit | sequence_loop( New_n, Base )].
|
||||
|
||||
task( Base ) ->
|
||||
io:fwrite( "Base ~p:", [Base] ),
|
||||
[io:fwrite( " ~p", [sequence(X, Base)] ) || X <- lists:seq(0, 9)],
|
||||
io:fwrite( "~n" ).
|
||||
15
Task/Van-der-Corput-sequence/Perl/van-der-corput-sequence.pl
Normal file
15
Task/Van-der-Corput-sequence/Perl/van-der-corput-sequence.pl
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
sub vdc {
|
||||
my @value = shift;
|
||||
my $base = shift // 2;
|
||||
use integer;
|
||||
push @value, $value[-1] / $base while $value[-1] > 0;
|
||||
my ($x, $sum) = (1, 0);
|
||||
no integer;
|
||||
$sum += ($_ % $base) / ($x *= $base) for @value;
|
||||
return $sum;
|
||||
}
|
||||
|
||||
for my $base ( 2 .. 5 ) {
|
||||
print "base $base: ", join ' ', map { vdc($_, $base) } 0 .. 10;
|
||||
print "\n";
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
#lang racket
|
||||
(define (van-der-Corput n base)
|
||||
(if (zero? n)
|
||||
0
|
||||
(let-values ([(q r) (quotient/remainder n base)])
|
||||
(/ (+ r (van-der-Corput q base))
|
||||
base))))
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
#lang racket
|
||||
(define (digit-length n base)
|
||||
(if (< n base) 1 (add1 (digit-length (quotient n base) base))))
|
||||
(define (digit n i base)
|
||||
(remainder (quotient n (expt base i)) base))
|
||||
(define (van-der-Corput n base)
|
||||
(for/sum ([i (digit-length n base)]) (/ (digit n i base) (expt base (+ i 1)))))
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
(for ([base (in-range 2 (add1 5))])
|
||||
(printf "Base ~a: " base)
|
||||
(for ([n (in-range 0 10)])
|
||||
(printf "~a " (van-der-Corput n base)))
|
||||
(newline))
|
||||
|
||||
#| Base 2: 0 1/2 1/4 3/4 1/8 5/8 3/8 7/8 1/16 9/16
|
||||
Base 3: 0 1/3 2/3 1/9 4/9 7/9 2/9 5/9 8/9 1/27
|
||||
Base 4: 0 1/4 1/2 3/4 1/16 5/16 9/16 13/16 1/8 3/8
|
||||
Base 5: 0 1/5 2/5 3/5 4/5 1/25 6/25 11/25 16/25 21/25 |#
|
||||
Loading…
Add table
Add a link
Reference in a new issue