16 lines
357 B
Text
16 lines
357 B
Text
|
|
func vdc(value, base=2) {
|
|||
|
|
while (value[-1] > 0) {
|
|||
|
|
value.append(value[-1] / base -> int)
|
|||
|
|
}
|
|||
|
|
var (x, sum) = (1, 0)
|
|||
|
|
value.each { |i|
|
|||
|
|
sum += ((i % base) / (x *= base))
|
|||
|
|
}
|
|||
|
|
return sum
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
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(', '))
|
|||
|
|
}
|