\n",
"There is a story about Carl Friedrich Gauss, pictured below. This problem was assigned to his class when he was a child; his teacher anticipated being able to relax while the children worked. But Gauss summed the list immediately.
\n",
"\n",
"Let `L` be the list of numbers 1, 2, ..., 1000. Let `M = sorted(L, reverse=True)`. Add `L` and `M`. What do you notice? Is it easy to add the numbers in `L + M`? Can you do it in your head? How are the sums of `L`, `M` and `L + M` related? Can you see what Gauss did? If so, you should be able to give an algebraic expression for the sum of the numbers from 1 to 1000, without using Python. \n",
"\n",
"
\n",
"\n",
"C. F. Gauss is featued on the German 10DM bill, alongside the graph of the Gaussian distribution from Statistics, buildings at the University of Göttingen, and (on the reverse side), an outline of the German state of Hannover, which Gauss surveyed. Some of the greatest mathematicians were professors at Göttingen, including Gauss, Riemann and Hilbert.\n",
"
"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The sum of the numbers 1, 2, ..., 1000 is 500500\n",
"The sum of the numbers 1, 2, ..., 1000 is 500500\n"
]
}
],
"source": [
"# Write your code here\n",
"# Using a for loop\n",
"sum_of_numbers = 0\n",
"for i in range(0, 1001):\n",
" sum_of_numbers += i\n",
"print(f'The sum of the numbers 1, 2, ..., 1000 is {sum_of_numbers}')\n",
"\n",
"# Using sum()\n",
"list_of_numbers = list(range(0, 1001))\n",
"sum_of_numbers2 = sum(list_of_numbers)\n",
"print(f'The sum of the numbers 1, 2, ..., 1000 is {sum_of_numbers2}')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__Problem 8.__ The Fibonacci numbers are defined in the following way. The first and second Fibonacci numbers $F_1$ and $F_2$ are both equal to 1. The following Fibonacci numbers are defined according to the rule \n",
"\n",
"\\begin{equation*}\n",
"F_{n} = F_{n-1} + F_{n-2},\n",
"\\end{equation*}\n",
"\n",
"for $n \\geq 3$. Create a list of the first 100 Fibonacci numbers. Print the list.\n",
"\n",
"_Hint._ Read about __negative indexing__ on page 35 of PCC.\n",
"\n",
"\n",
"
Note. It is a fascinating fact that \n",
"\\begin{equation*}\n",
"F_n = \\left \\lfloor{\\frac{\\phi^n}{\\sqrt{5}} + \\frac{1}{2}} \\right \\rfloor,\n",
"\\end{equation*}\n",
"where \n",
"\\begin{equation*}\n",
"\\phi = \\frac{1+\\sqrt{5}}{2}\n",
"\\end{equation*} \n",
" is the
golden ratio. This is a situation where an approximate computation leads to a closed form formula. The Fibonacci numbers are so fascinating that a whole journal, the Fibonacci Quarterly, is devoted to their study. Consecutive Fibonacci numbers arise in many biological applications, including: the arrangements of leaves on a plant stem, the arrangement of pinecone bracts, and the fruit sprouts of a pineapple. See the image below for the appearance in Yellow Chamomile.
(source)\n",
"
\n",
"
"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141, 267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976, 7778742049, 12586269025, 20365011074, 32951280099, 53316291173, 86267571272, 139583862445, 225851433717, 365435296162, 591286729879, 956722026041, 1548008755920, 2504730781961, 4052739537881, 6557470319842, 10610209857723, 17167680177565, 27777890035288, 44945570212853, 72723460248141, 117669030460994, 190392490709135, 308061521170129, 498454011879264, 806515533049393, 1304969544928657, 2111485077978050, 3416454622906707, 5527939700884757, 8944394323791464, 14472334024676221, 23416728348467685, 37889062373143906, 61305790721611591, 99194853094755497, 160500643816367088, 259695496911122585, 420196140727489673, 679891637638612258, 1100087778366101931, 1779979416004714189, 2880067194370816120, 4660046610375530309, 7540113804746346429, 12200160415121876738, 19740274219868223167, 31940434634990099905, 51680708854858323072, 83621143489848422977, 135301852344706746049, 218922995834555169026, 354224848179261915075]\n"
]
}
],
"source": [
"# Write your code here\n",
"fib = [1, 1]\n",
"for i in range(0, 98):\n",
" fib.append(fib[-1] + fib[-2])\n",
" \n",
"print(fib) "
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}