Жарознижувальні засоби для дітей призначаються педіатром. Але бувають ситуації невідкладної допомоги за лихоманки, коли дитині потрібно дати ліки негайно. Тоді батьки беруть на себе відповідальність і застосовують жарознижувальні препарати. Що можна давати дітям грудного віку? Чим можна збити температуру у старших дітей? Які ліки найбезпечніші?
Був лінивий. Щоб чимось зайняти дітей на довгий час, а самому подрімати, він попросив їх скласти числа від 1 до 100.
Гаус швидко дав відповідь: 5050. Так швидко? Вчитель не повірив, але юний геній мав рацію. Складати всі числа від 1 до 100 – це для слабаків! Гаус знайшов формулу:
$$\sum_(1)^(n)=\frac(n(n+1))(2)$$
$$\sum_(1)^(100)=\frac(100(100+1))(2)=50\cdot 101=5050$$
Як це в нього вийшло? Спробуймо розібратися на прикладі суми від 1 до 10.
Перший спосіб: розбити числа на пари
Запишемо числа від 1 до 10 у вигляді матриці з двома рядками та п'ятьма стовпцями:
$$\left(\begin(array)(c)1&2&3&4&5\\ 10&9&8&7&6 \end(array)\right)$$
Цікаво, сума кожного стовпця дорівнює 11 або $ n + 1 $. І всього таких пар чисел 5 або $\frac(n)(2)$. Отримуємо нашу формулу:
$$Кількість\ стовпців\cdotСума\ чисел\ в\ стовпчиках=\frac(n)(2)\cdot(n+1)$$
Якщо непарне число доданків?
Що, якщо скласти числа від 1 до 9? У нас не вистачає одного числа для складання п'яти пар, але ми можемо взяти нуль:
$$\left(\begin(array)(c)0&1&2&3&4\\ 9&8&7&6&5 \end(array)\right)$$
Сума стовпців тепер дорівнює 9 або $n$. А кількість стовпців? Як і раніше п'ять стовпців (дякую нулю!), але тепер кількість стовпців визначається як $\frac(n+1)(2)$ (у нас $n+1$ чисел і вдвічі менше стовпців).
$$Кількість\ стовпців\cdotСума\ чисел\ в\ стовпчиках=\frac(n+1)(2)\cdot n$$
Другий спосіб: збільшити вдвічі і записати в два рядки
Ми трохи по-різному рахуємо суму чисел у цих двох випадках.
Можливо, є спосіб однаково порахувати суму для парної та непарної кількості доданків?
Замість того, щоб робити з чисел своєрідну «петлю», давайте запишемо їх у два рядки, при цьому кількість чисел помножимо на два:
$$\left(\begin(array)(c)1&2&3&4&5&6&7&8&9&10\\10&9&8&7&6&5&4&3&2&1 \end(array)\right)$$
Для непарного випадку:
$$\left(\begin(array)(c)1&2&3&4&5&6&7&8&9\\9&8&7&6&5&4&3&2&1\end(array)\right)$$
Очевидно, що в обох випадках сума стовпців дорівнює $n+1$, а кількість стовпців $n$.
$$Кількість\ стовпців\cdotСума\ чисел\ в\ стовпчиках=n\cdot(n+1)$$
Але нам потрібна сума лише одного рядка, тому:
$$\frac(n\cdot(n+1))(2)$$
Третій спосіб: зробити прямокутник
Є ще одне пояснення, давайте спробуємо скласти хрестики, допутимо у нас хрестики:
Схоже просто на інше уявлення другого способу - кожен наступний рядок пірамідки має більше хрестиків і менше нуликів. Кількість всіх хрестиків та нуліків – площа прямокутника.
$$Площа=Висота\cdotШирина=n\cdot(n+1)$$
Але нам потрібна сума хрестиків, тому:
$$\frac(n\cdot(n+1))(2)$$
Четвертий спосіб: середнє арифметичне
Відомо: $Середнє\ арифметичне=\frac(Сума)(Кількість\ членів)$
Тоді: $Сума = середня\ арифметична\cdotКількість\ членів$
Кількість членів нам відома - $n$. А як виразити Середнє арифметичне?
Зауважте, числа розподілені рівномірно. На кожне велике число припадає невелике, розташоване на іншому кінці.
1 2 3, середня 2
1 2 3 4, середня 2.5
У цьому випадку середнє арифметичне - це середнє арфіметичне чисел 1 і $n$, тобто $Середнє\ арифметичне=\frac(n+1)(2)$
$$Сума = \frac(n+1)(2)\cdot n$$
П'ятий спосіб: інтеграл
Усі ми знаємо, що певний інтеграл обчислює суму. Порахуємо суму від 1 до 100 інтегралів? Так, але спочатку давайте хоча б знайдемо суму від 1 до 3. Нехай наші числа будуть функцією y(x). Намалюємо картинку:
Висоти трьох прямокутників - саме числа від 1 до 3. Проведемо пряму через середини «шапок»:
![](https://i0.wp.com/pycoder.ru/media/images/2.width-800.png)
Непогано було б знайти рівняння цієї прямої. Вона проходить через точки (1.5; 1) та (2.5; 2). $y=k\cdot x+b$.
$ $ \ begin (cases) 2.5k + b = 2 \ 1.5k + b = 1 \ end (cases) \ Rightarrow k = 1; b=-0.5$$
Таким чином, рівняння прямої, якою ми можемо апроксимувати наші прямокутники $y=x-0.5$
![](https://i1.wp.com/pycoder.ru/media/images/3.width-800.png)
Вона відсікає від прямокутників жовті трикутники, але додає до них зверху блакитні. Жовті дорівнюють блакитним. Спочатку переконаємося, що використання інтегралу веде до формули Гауса:
$$\int_(1)^(n+1) (x-\frac(1)(2)) \, dx = (\frac(x^(2))(2)-\frac(x)(2 ))(|)^(n+1)_(1)=\frac((n+1)^(2))(2)-\frac(n+1)(2)=\frac(n^( 2)+2n+1-n-1)(2)=\frac(n^(2)+n)(2)$$
Тепер порахуємо суму від 1 до 3, за іксом беремо від 1 до 4, щоб усі наші три прямокутники потрапили в інтеграл:
$$\int_(1)^(4) (x-\frac(1)(2)) \, dx = (\frac(x^(2))(2)-\frac(x)(2)) (|)^(4)_(1)=\frac(4^(2))(2)-2-(0.5-0.5)=6$$
$$\int_(1)^(101) (x-\frac(1)(2)) \, dx = (\frac(x^(2))(2)-\frac(x)(2)) (|)^(101)_(1)=\frac(101^(2))(2)-50.5-(0.5-0.5)=5100.5-50.5=5050$$
І навіщо все це потрібне?
$$\frac(n(n+1))(2)=\frac(n^(2))(2)+\frac(n)(2)$$
Першого дня на ваш сайт зайшла одна людина, на другий день двоє… Щодня кількість відвідувань збільшувалася на 1. Скільки всього відвідувань набере сайт до кінця 1000-го дня?
$$\frac(n(n+1))(2)=\frac(n^(2))(2)+\frac(n)(2)=\frac(1000^(2))(2) +\frac(1000)(2) = 500000+500=500500$$
Ми сьогодні розглянемо одне з математичних завдань, що довелося вирішувати з племінником. І потім ми її реалізуємо через PHP. І розглянемо кілька варіантів вирішення цього завдання.
Умова задачі:
Необхідно швидко скласти всі числа від 1 до 100 один за одним і дізнатися про суму всіх чисел.
Рішення задачі:
Насправді, коли ми вперше вирішували це завдання, ми вирішили її неправильно! Але ми не будемо писати про неправильне рішенняцієї задачі.
І рішення таке просте і тривіальне - потрібно скласти 1 і 100 і помножити на 50. (Таке рішення було у Карла Гауса, коли він був зовсім маленьким...)
(1 + 100)*50.
Як це завдання вирішити через php?
Порахувати суму всіх чисел від 1 до 100 через PHP.
Коли ми вже вирішили це завдання, то вирішили подивитися, що пишуть в «інтеренетах» з цього питання! І знайшов якусь форму, де молоді обдарування було неможливо вирішити це завдання і намагалися зробити це через цикл.
Якщо спеціально не стоїть умова, щоб зробити саме через цикл, то й сенсу робити це через цикл немає жодного!
І так! Не забуваємо, що у php можна вирішити задачу безліччю способів! 1.
Цей кодможе складати взагалі будь-яку послідовність чисел починаючи з одиниці до нескінченності.
Давайте реалізуємо наше рішення у найпростішій формі:
$end = $_POST["peremennaya"];
$res = $end/2*($i + $end);