Sekwencja Van der Corputa

Ilustracja wypełnienia przedziału jednostkowego (oś pozioma) za pomocą pierwszych n wyrazów dziesiętnego ciągu Van der Corputa, dla n od 0 do 999 (oś pionowa)

Sekwencja van der Corput jest przykładem najprostszej jednowymiarowej sekwencji o niskiej rozbieżności w przedziale jednostkowym ; został po raz pierwszy opisany w 1935 roku przez holenderskiego matematyka JG van der Corputa . Jest konstruowany przez odwrócenie . podstawowej reprezentacji ciągu liczb naturalnych (1, 2, 3, …)

b -ary reprezentacja dodatniej liczby całkowitej b

gdzie podstawą, w której jest to znaczy -ta w n -ta w sekwencji van der Corput to n {\

Przykłady

Na przykład, aby uzyskać dziesiętną sekwencję van der Corput, od podzielenia liczb od 1 do 9 na części dziesiąte ( a następnie zmieniamy mianownik na 100, aby rozpocząć dzielenie na części setne ). Jeśli chodzi o licznik, zaczynamy od wszystkich liczb dwucyfrowych od 10 do 99, ale w odwrotnej kolejności cyfr. W rezultacie otrzymamy liczniki pogrupowane według cyfry końcowej. Po pierwsze wszystkie dwucyfrowe liczniki kończące się na 1, więc kolejne liczniki to 01, 11, 21, 31, 41, 51, 61, 71, 81, 91. Następnie liczniki kończące się na 2, czyli 02, 12 , 22, 32, 42, 52, 62, 72, 82, 92. A potem liczniki kończące się na 3: 03, 13, 23 i tak dalej...

W ten sposób rozpoczyna się sekwencja

lub w reprezentacji dziesiętnej:
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,51, 0,61, 0,71, 0,81, 0,91, 0,02, 0,1 2, 0,22, 0,32 , …,

To samo można zrobić dla binarnego systemu liczbowego , a binarny ciąg van der Corput jest

2 0,1011 2 , 0,0111 2 , 0,1111 2 , _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

lub równoważnie,

Elementy ciągu van der Corputa (o dowolnej podstawie) tworzą gęsty zbiór w przedziale jednostkowym; to znaczy dla dowolnej liczby rzeczywistej w van der Corput, która zbiega się tej liczby Są one również równomiernie rozmieszczone w przedziale jednostkowym.

Implementacja C

    
     0 

       0 
          
        
        
    

      double  corput  (  int  n  ,  int  base  ) {  double  q  =  ,  bk  =  (  double  )  1  /  base  ;  while  (  n  >  )  {  q  +=  (  n  %  podstawa  )  *  bk  ;  n  /=  podstawa  ;  bk  /=  podstawa  ;  }  zwróć  q 
 ;  } 

Zobacz też

  •   van der Corput, JG (1935), „Verteilungsfunktionen (Erste Mitteilung)” (PDF) , Proceedings of the Koninklijke Akademie van Wetenschappen te Amsterdam (w języku niemieckim), 38 : 813–821, Zbl 0012.34705
  •    Kuipers, L.; Niederreiter, H. (2005) [1974], Jednolity rozkład sekwencji , Dover Publications , s. 129158, ISBN 0-486-45019-8 , Zbl 0281.10001

Linki zewnętrzne