FREE HISTORICAL FIGURES OF COMPUTING PROFILE
Leonardo Fibonacci
~1170–1250 · Mathematician
Leonardo of Pisa, known as Fibonacci
Leonardo of Pisa, usually called Fibonacci today, wrote Liber Abaci in 1202 and a revised version in 1228. His account describes learning calculation in North Africa, where his father represented Pisan merchants at Bugia, now Béjaïa. His conventional life dates, about 1170–1250, are estimates. The surviving biographical record is limited; MacTutor identifies both the autobiographical account and the 1240 Pisan document.
His work helped disseminate and develop arithmetic in Latin using Hindu-Arabic numerals. It did not invent positional notation, make earlier computation possible for the first time, or establish that every later calculator implements his particular procedures. Arithmetic techniques, written numerals, counting devices, and bookkeeping conventions have related but distinct histories.
A substantial work, not just a rabbit puzzle
Liber Abaci addresses arithmetic, fractions, commercial problems, and algebraic calculation. The rabbit problem is one small part of that broader project. Leonardo also wrote on geometry and squares. The St Andrews educational account surveys these works and the recurrence associated with the rabbit problem. Its broad priority statements should not substitute for proof about particular historical predecessors.
For computer science, two mechanisms make useful studies: carrying in a positional representation and maintaining state while evaluating a recurrence. The examples below are original modern presentations, not translated algorithms from the manuscript.
Worked mechanism: positional multiplication
In base ten, 307 = 3*10² + 0*10 + 7. Multiplication by 24 = 2*10 + 4 distributes:
307*24 = 307*4 + 307*2*10
= 1228 + 6140
= 7368
The zero digit preserves the place assigned to the tens. It does not represent a special instruction. In the multiplication by 4, start at the least significant digit:
7*4 = 28: output units digit8and carry2.0*4 + 2 = 2: output tens digit2and carry0.3*4 = 12: output hundreds digit2and carry1into the thousands.
The result is 1228. Each step writes a remainder modulo 10 and moves the quotient to the next column. Algebra explains the move: t = 10q+r, so an amount t*10^i equals r*10^i + q*10^(i+1). Carrying preserves the numerical value while bringing a digit into the permitted range 0 through 9.
The same invariant works in another base. In binary, 11₂*101₂ = 1111₂, because the inputs denote 3 and 5 and the output denotes 15. That is a structural relationship between positional systems, not evidence that Leonardo invented binary computation.
Nonpositional representations can also support algorithms. One could represent a positive integer by a string of tally marks and multiply by repeated concatenation. That method is inefficient for large values, but its existence refutes the claim that arithmetic is impossible without decimal notation. Convenience, efficiency, and logical possibility are different judgments.
A recurrence needs initial conditions and an index convention
Define F0=0, F1=1, and F(n+2)=F(n+1)+F(n) for nonnegative n. The values begin 0,1,1,2,3,5,8. Merely saying “add the previous two” is incomplete unless the starting values and positions are given.
A population story can motivate the recurrence under explicit assumptions: pairs do not die, mature pairs produce one new pair per time step, and newborns wait before reproducing. It is an idealized model, not a biological law. Alter mortality or maturation and the recurrence changes.
For exact calculation, retain two adjacent values. Begin with (a,b)=(0,1). Repeatedly replace them simultaneously with (b,a+b). After k steps the invariant is (a,b)=(Fk,F(k+1)). The base case holds at zero steps. If it holds before an update, the recurrence makes the new pair (F(k+1),F(k+2)), completing induction.
After five updates the pairs are (1,1), (1,2), (2,3), (3,5), (5,8), so F5=5. Sequential assignments require care: updating a before computing a+b can accidentally use a new value instead of the old one.
This procedure uses a linear number of additions and two stored integers. The integers grow in length, so “constant memory” would be inaccurate if memory is measured in bits rather than variable count. Cost models belong in the specification.
Exercises
- Multiply
406*27using positional partial products. Explain the carry when multiplying the units digit by7, and check the final answer by decomposition. - Starting at
(0,1), run seven simultaneous recurrence updates. Prove that the first component is the requested value. Show what goes wrong if the updates area=bfollowed byb=a+bwithout saving the olda. - A proposed population model allows every pair, including newborns, to produce a new pair at each subsequent step, with no deaths. Start with one pair. Derive the recurrence and first five populations. Explain why naming Leonardo's rabbit problem cannot justify using Fibonacci numbers for this different model.
Compare your reasoning with the worked solutions
1. Preserve value while carrying
406*7=2842: units multiplication 6*7=42 gives digit 2 and carry 4; tens gives 0*7+4=4; hundreds gives 4*7=28. The other partial product is 406*20=8120. Adding yields 10962. Independently, 400*27+6*27=10800+162=10962. Both calculations use distributivity and place value.
2. Preserve the old pair
The sixth and seventh correct pairs are (8,13) and (13,21), so F7=13. The induction invariant proved above establishes that the index is correct. With faulty sequential updates, the first step from (0,1) sets a=1, then computes b=1+1=2; it has already skipped the correct pair (1,1). Save the old a, or compute both new values before replacing either.
3. Different assumptions, different recurrence
Let P0=1. Every existing pair survives and produces one new pair per step, so P(n+1)=2Pn. Thus P0 through P4 are 1,2,4,8,16. There is no delayed-maturity term. The Fibonacci recurrence would encode a different causal assumption; the fame of a historical example cannot make the wrong model fit.
Sources and reading limits
- Fibonacci biography, University of St Andrews: works, autobiographical evidence, and the 1240 record. Its occasional broad priority wording is not adopted here.
- Leonardo of Pisa, Heinz Klaus Strick, hosted by St Andrews: a concise educational survey. It is a secondary explanation, not Liber Abaci itself; its stipend chronology differs from the main biography, so the dated-document account is used.
- The historical account follows the cited institutional and scholarly sources rather than a direct collation of the complete Liber Abaci. The mathematical examples, invariant proofs, and population comparisons above are original teaching constructions rather than claims about exact manuscript wording or chapter organization.