De wet van Benford beschrijft de frequentieverdeling van het begincijfer van getallen in grote dataverzamelingen waarin een beperkte mate van stochasticiteit optreedt. De wetmatigheid werd in 1881 ontdekt door de Amerikaanse wiskundige en astronoom Simon Newcomb, maar kreeg vooral grote bekendheid door de herontdekking en publicaties in 1938 van Frank Benford, een fysicus die zijn hele leven bij het Amerikaanse bedrijf General Electric gewerkt heeft.

wet van Benford
De verdeling van de eerste cijfers van getallen volgens de wet van Benford. Elke balk stelt een cijfer voor, en de hoogte is het percentage getallen dat met dat cijfer begint.

In 1938 publiceerde Benford een artikel waarin hij het verschijnsel beschrijft dat in veel verzamelingen van getallen uit het normale leven (maar niet allemaal) de meeste van die getallen met een 1 beginnen. Minder getallen beginnen met een 2 en de minste met een 9. Dit wijst er op dat de kans om begincijfer te zijn niet voor alle cijfers van 1 tot en met 9 hetzelfde is. Benford toonde aan dat de kans dat in een reeks getallen een getal met een 1 begint, ongeveer 30% is. De kans dat een getal met een 9 begint, is daarentegen slechts 5%. Deze wetmatigheid is de wet van Benford gaan heten.

Wiskundig wordt deze wet uitgedrukt met de volgende kansfunctie die de kansverdeling geeft van eerste cijfer $${\displaystyle D_{1}}$$ van een getal. De waarschijnlijkheid dat $${\displaystyle D_{1}}$$ gelijk is aan $${\displaystyle d}$$ wordt gegeven door: \[ {\displaystyle P(D_{1}=d)=\log _{10}\left(1+{\frac {1}{d}}\right)} \texttt{ voor } {\displaystyle d=1,\ldots, 9} \] Deze kansverdeling wordt weergegeven in de volgende tabel:

begincijfer 1 2 3 4 5 6 7 8 9
kans (%) 30.1 17.6 12.5 9.7 7.9 6.7 5.8 5.1 4.6

Benford onderzocht enorme hoeveelheden numerieke gegevens, zoals de lengtes van rivieren, de oppervlakten van meren en landerijen, hoogtes van bergen, numerieke fenomenen uit de natuurkunde en scheikunde, wiskundige tafels, getallen uit kranten en tijdschriften, enzovoort. Daardoor vond hij steeds meer empirisch bewijs voor de juistheid van zijn formule. Een verklaring voor de juistheid van zijn formule kon hij echter niet geven.

Opgave

Vul het volgende Unix commando aan zodat naar standaard uitvoer (stdout) een frequentietabel wordt uitgeschreven van de begincijfers van de natuurlijke getallen uit het derde informatieveld van het gegeven tekstbestand.

$ cat <bestandsnaam> |

In het tekstbestand bestaan de regels uit informatievelden die van elkaar gescheiden worden door komma's (,). De informatievelden bevatten zelf geen komma's. Het derde informatieveld bevat altijd een strikt positief natuurlijk getal. De begincijfers moeten uitgeschreven worden volgens dalend aantal voorkomens, waarbij begincijfers die evenveel voorkomen in oplopende volgorde moeten uitgeschreven worden.

Voorbeeld

$ cat data01.txt1 |   2154 1
   1183 2
    912 3
    724 4
    573 5
    485 6
    400 7
    359 8
    342 9
$ cat data02.txt2 |   5434 1
   1242 7
     94 3
     82 2
     44 4
     20 8
     16 5
     11 6
      7 9

Richtlijnen bij het indienen

Dien enkel het stuk van het commando in dat moet ingevuld worden op de plaats van de drie puntjes (…).