How to resolve the algorithm Van der Corput sequence step by step in the J programming language

Published on 12 May 2024 09:40 PM
#J

How to resolve the algorithm Van der Corput sequence step by step in the J programming language

Table of Contents

Problem Statement

When counting integers in binary, if you put a (binary) point to the right of the count then the column immediately to the left denotes a digit with a multiplier of

2

0

{\displaystyle 2^{0}}

; the digit in the next column to the left has a multiplier of

2

1

{\displaystyle 2^{1}}

; and so on. So in the following table: the binary number "10" is

1 ×

2

1

0 ×

2

0

{\displaystyle 1\times 2^{1}+0\times 2^{0}}

. You can also have binary digits to the right of the “point”, just as in the decimal number system. In that case, the digit in the place immediately to the right of the point has a weight of

2

− 1

{\displaystyle 2^{-1}}

, or

1

/

2

{\displaystyle 1/2}

. The weight for the second column to the right of the point is

2

− 2

{\displaystyle 2^{-2}}

or

1

/

4

{\displaystyle 1/4}

. And so on. If you take the integer binary count of the first table, and reflect the digits about the binary point, you end up with the van der Corput sequence of numbers in base 2. The third member of the sequence, binary 0.01, is therefore

0 ×

2

− 1

1 ×

2

− 2

{\displaystyle 0\times 2^{-1}+1\times 2^{-2}}

or

1

/

4

{\displaystyle 1/4}

. This sequence is also a superset of the numbers representable by the "fraction" field of an old IEEE floating point standard. In that standard, the "fraction" field represented the fractional part of a binary number beginning with "1." e.g. 1.101001101. Hint A hint at a way to generate members of the sequence is to modify a routine used to change the base of an integer: the above showing that 11 in decimal is

1 ×

2

3

0 ×

2

2

1 ×

2

1

1 ×

2

0

{\displaystyle 1\times 2^{3}+0\times 2^{2}+1\times 2^{1}+1\times 2^{0}}

. Reflected this would become .1101 or

1 ×

2

− 1

1 ×

2

− 2

0 ×

2

− 3

1 ×

2

− 4

{\displaystyle 1\times 2^{-1}+1\times 2^{-2}+0\times 2^{-3}+1\times 2^{-4}}

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Van der Corput sequence step by step in the J programming language

Source code in the j programming language

vdc=: ([ %~ %@[ #. #.inv)"0 _


   2 vdc i.10                NB. 1st 10 nums of Van der Corput sequence in base 2
0 0.5 0.25 0.75 0.125 0.625 0.375 0.875 0.0625 0.5625
   2x vdc i.10               NB. as above but using rational nums
0 1r2 1r4 3r4 1r8 5r8 3r8 7r8 1r16 9r16
   2 3 4 5x vdc i.10         NB. 1st 10 nums of Van der Corput sequence in bases 2 3 4 5
0 1r2 1r4 3r4  1r8  5r8  3r8   7r8  1r16  9r16
0 1r3 2r3 1r9  4r9  7r9  2r9   5r9   8r9  1r27
0 1r4 1r2 3r4 1r16 5r16 9r16 13r16   1r8   3r8
0 1r5 2r5 3r5  4r5 1r25 6r25 11r25 16r25 21r25


  

You may also check:How to resolve the algorithm Maze generation step by step in the FreeBASIC programming language
You may also check:How to resolve the algorithm Mandelbrot set step by step in the XPL0 programming language
You may also check:How to resolve the algorithm Thiele's interpolation formula step by step in the Sidef programming language
You may also check:How to resolve the algorithm K-d tree step by step in the Phix programming language
You may also check:How to resolve the algorithm Fibonacci n-step number sequences step by step in the ERRE programming language