밀랍 ,57 53 바이트
rosettacode의 이진 숫자 출력 문제에 대해 작업하면서 van der Corput 시퀀스에 대해 동일한 짧은 나누기 알고리즘을 사용할 수 있음을 알았습니다. 단 2 대신 10으로 나누기와 모듈로를 사용했습니다. 두 경우 모두 출력이 반전됩니다.
코드를 미러링하여 4 바이트 씩 줄였습니다.
`.0` XfE@~@L#;
{ %X<#dP@T~P9_
q<# N
>:'bg?b
보다 쉬운 오리엔테이션을위한 6 각형 지문
` . 0 ` X f E @ ~ @ L # ;
{ % X < # d P @ T ~ P 9 _
q < # N
> : ' b g ? b
원래 코드를 사용하여 프로그램을 통한 한주기의 설명 :
;#L@~@EfX `0.`
_9P~T@Pb#>X% {
N #>p
d?gd':<
lstack gstack
_9P [0,0,10]• create bee, set top to 10
~T [0,10,n]• flip top and 2nd, enter n
@P [n,10,1]• flip top and 3rd, increment top
b redirect to upper left
[n,10,1]• E [n,10,1]• (2)clone bee in horizontal direction
flip lstack 1st/3rd [1,10,n]• @ f [n,10,1]• [1]• push lstack top on gstack
flip lstack 1st/2nd [1,n,10]• ~ X clone bee in all directions
flip 1st/3rd [10,n,1]• @ `0.` print "0." to STDOUT
skip if 1st>2nd [10,n,1]• L > (1)redirect
if 1st<2nd, del. bee # X clone bee in all directions
(if 1st>2nd, terminate program) ; % { [n,10,1]• 1st=1st%2nd, output lstack 1st to STDOUT
>p redirect
< redirect
: [n,10,0]• 1st=1st/2nd
' skip next instr. if 1st=0
d redirect to upper right, loop back to (1)
g [n,10,1] [1]• push gstack top on lstack 1st
d? []• pop gstack, redirect to upper right
N print newline to STDOUT
P [n,10,2] increment lstack 1st
E looped back to (2)
예:
julia> beeswax("vandercorput.bswx",0,0.0,Int(20000))
i300
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.01
0.11
0.21
0.31
0.41
.
.
.
0.492
0.592
0.692
0.792
0.892
0.992
0.003
Program finished!