Een man besluit een kilometer van A naar B te lopen.

Het is duidelijk dat deze oneindige opeenvolging van veronderstellingen logischerwijs als gevolg heeft dat de man vast komt te zitten op punt A. Immers, je kan voor elke god een volgende god bedenken die de helft dichter bij punt A wacht om een versperring te werpen op de weg.

Bovenstaande denkoefening is een toepassing van onderstaande wiskundige reeks: \[\frac{1}{2}+\frac{1}{4}+\frac{1}{8}+\frac{1}{16}+\cdots = \sum_{n=1}^\infty \left({\frac 12}\right)^n = 1. \]

Hoe veel termen je ook bij elkaar optelt, de som nadert 1 zonder 1 te worden.

Opgave

Jouw programma vraagt aan de gebruiker een willekeurig getal tussen 0 en 1. Vervolgens schrijf je op 1 regel hoeveel termen van de meetkundige rij \[\frac{1}{2}, \frac{1}{4}, \frac{1}{8}, \frac{1}{16} \cdots\] je minimaal moet optellen om een getal te bekomen die groter is dan het geven getal. Je geeft ook de bekomen som.

Voorbeeld

Stel dat de gebruiker het getal 0.989 opgeeft dan is \[\frac{1}{2} + \frac{1}{4} + \frac{1}{8} + \frac{1}{16} + \frac{1}{32} + \frac{1}{64} = 0.984375\] net te klein. De som van de eerste 7 termen voldoet wel: \[\frac{1}{2} + \frac{1}{4} + \frac{1}{8} + \frac{1}{16} + \frac{1}{32} + \frac{1}{64} + \frac{1}{128} = 0.9921875\]

Invoer:
0.989
Uitvoer:
7 0.9921875

Bronnen

futilitycloset (2019). 1

Wikipedia (2019). 2