RosettaCodeData/Task/Van-der-Corput-sequence/Sidef/van-der-corput-sequence.sidef

16 lines
357 B
Text
Raw Permalink Normal View History

2016-12-05 23:44:36 +01:00
func vdc(value, base=2) {
while (value[-1] > 0) {
2017-09-23 10:01:46 +02:00
value.append(value[-1] / base -> int)
2016-12-05 23:44:36 +01:00
}
2017-09-23 10:01:46 +02:00
var (x, sum) = (1, 0)
2016-12-05 23:44:36 +01:00
value.each { |i|
2017-09-23 10:01:46 +02:00
sum += ((i % base) / (x *= base))
2016-12-05 23:44:36 +01:00
}
2017-09-23 10:01:46 +02:00
return sum
2016-12-05 23:44:36 +01:00
}
2017-09-23 10:01:46 +02:00
 
for base in (2..5) {
var seq = 10.of {|i| vdc([i], base) }
"base %d: %s\n".printf(base, seq.map{|n| "%.4f" % n}.join(', '))
2016-12-05 23:44:36 +01:00
}