Научи меня плохому.
= Спасай!!!
/ Шеф! Все пропало! /
= Шоу под угрозой, а отказаться нельзя.
/ Все, кина не будет. Электричество кончилось. /
— Что случилось?
/ У тебя там не закрытый… а открытый перелом? /
= Сгорел уже на третьей задаче! Хорошо еще, что хвалился своим друзьям, и как заклинило, отговорился, что надо делать уроки и т.п. Но завтра в школе они всем расскажут, и с меня потребуют демонстрацию.
/ Семё-ё-н Семёныч!… /
— Я тебе говорил, что фокусы, как и экспромты, надо тщательно готовить. Потренировался бы побольше, подготовил..., а это мысль...
— Все мои проблемы я...
= Я знаю, все твои проблемы ты решаешь программным путем.
— Да, именно так. План такой: как генерировать квадратные уравнения мы знаем, а значит пишем программку...
/ Лёгким движением руки брюки превращаются… Брюки превращаются… Превращаются брюки… /
Так, это дело займет не пять минут, посмотри пока фильм.
= Брильянтовую ногу?
— Можно и это, но я имел в виду «Праздник святого Йоргена»
............
= Фу..... черно-белый! Немой!!!
— Ну, и что. Фильм тридцатого года, но зато здорово объясняется, как надо готовить чудеса.
...........
— Оторвись, потом досмотришь.
/ Дичь не улетит, она жареная /
— В последнее время я учусь работать с Питоном. Достаточно интересный язык, но особо хвалить или ругать рано, надо получше познакомится.
— Но для начала одно предупреждение. Питон очень требователен к правильному применению отступов, к сожалению fb2 «съедает» лишние пробелы или табуляции, да, есть теги для оформления кода, но не все читалки правильно их воспринимают.
/ Я считаю, что человеку можно верить только в самом крайнем случае. /
Поэтому для зрительного восприятия отступов группы пробелов (табуляцию) я заменю группой точек и пробелов « . . »
= Ясно, при необходимости заменить их на табуляцию. Но не растягивай, у меня время поджимает.
/ Цигель, цигель ай лю-лю /
— Давай разберем, то, что сделано.
— Вариант первый (пробный) для выяснения принципа работы программы.
1 | # -*- coding: utf-8 -*-
2 | import random
3 |
4 | def gen_number():
5 | . . prime_number =(1, 2, 3, 5, 7, 11, 13, 17)
6 | . . sign_number =(0, 1, 2, 3)
7 | . . nu = random.choice(prime_number)
8 | . . sign = random.choice(sign_number)
9 | . . if sign == 0:
10 | . . . . nu = nu * -1
11 | . . return nu
12 |
13 | def show_numb(a):
14 | . . if a > 0:
15 | . . . . return ' + '+ str(a)
16 | . . return ' - ' + str(abs(a))
17 |
18 | for i in range(100):
19 | . . x1 = gen_number()
20 | . . x2 = gen_number()
21 | . . b = x1 + x2
22 | . . c = x1 * x2
23 | . . #print 'x1 = '+str(x1) + ' x2 = '+str(x2)
24 | . . if b != 0:
25 | . . . . print 'x^2 '+ show_numb(b*-1) + 'x ' +show_numb(c)
Строка 2 — подключаем библиотеку для работы со случайными числами.
Строка 4 — функция генерирующая случайное число со случайным знаком
Строка 5 — кортеж из простых чисел, из которых случайно мы будем выбирать ___
Строка 6 — из этого кортежа будем выбирать знак. Минус будет засчитываться только если выпадет 0 (ясно все остальные вероятности = плюс) чем больше этих «ненужных» чисел, тем меньше вероятность выпадания минуса. Вот такая шутка.
Остальные строки функции прозрачны. Не будем сотрясать воздух.
Строка 13 — функция Показа числа. В общем все понятно: если число положительно то перед ним напишем «+», иначе «-».
= А если будет ноль?
— Посмотри внимательно.... нуля не будет.
/ Только нэ суетись! Кутузов!! /
Строка 18 — основной блок программы. В данном случае это цикл повторяющийся 100 раз
Задумываются два числа (из простых чисел с произвольным знаком)
Эти числа умножаются и складываются. Результат выводится на экран.
Строка 24 — исключает из рассмотрения случаи с коэффициентом b равным нулю, уравнение при этом будет слишком примитивно.
= Ты пропустил 23 строку!
— Она закомментирована и нужна была только в отладке для проверки результатов.
— Как видишь, ничего сложного.
= Ну, не знаю, но я...
/ Как говорит наш дорогой шеф, в нашем деле главное — этот самый реализьм! /
— Хорошо, переходим к реальной программе.
1 | # -*- coding: utf-8 -*-
2 | import random
3 |
4 | def gen_number(k):
5 | . . prime_number =(1, 2, 3, 5, 7, 11, 13, 17)
6 | . . sign_number =(0, 1, 2, 3)
7 | . . nu = prime_number[random.randint(0, k)]
8 | . . sign = random.choice(sign_number)
9 | . . if sign == 0:
10 | . . . . nu = nu * -1
11 | . . return nu
12 |
13 | def show_numb(a):
14 | . . if a > 0:
15 | . . . . return ' + '+ str(a)
16 | . . return ' - ' + str(abs(a))
17 | . .
18 | TopList = ['<html>', '<head><title></title></head>','<body>']
19 |
20 | f1 = open("quadratic.htm", 'w')
21 | f2 = open("answer.htm", 'w')
22 |
23 | for ind in TopList:
24 | . . f1.write(ind + '\n')
25 | for ind in TopList:
26 | . . f2.write(ind + '\n')
27 |
28 | f1.write('<table width=100%>\n')
29 | f2.write('<table width=100%>\n')
30 | tr = 0
31 | count = 1
32 |
33 | for i in range(300):
34 | . . x1 = gen_number(4)
35 | . . x2 = gen_number(7)
36 | . . b = x1 + x2
37 | . . c = x1 * x2
38 |
39 | . . if b != 0:
40 | . . . . if tr == 0:
41 | . . . . . . f1.write('<tr>')
42 | . . . . . . f2.write('<tr>')
43 | . . . . f1.write('<td><p>')
44 | . . . . f1.write(str(count) + ') x<sup>2</sup> '+ show_numb(b*-1) + 'x ' +show_numb(c) + ' = 0' )
45 | . . . . f1.write('</p></td>\n')
46 | . . . . f2.write('<td><p>')
47 | . . . . f2.write(str(count) + ') x<sub>1</sub> = '+ str(x1) + '; x<sub>2</sub> = ' + str(x2) )
48 | . . . . f2.write('</p></td>\n')
49 | . . . . count += 1
50 | . . . . tr += 1
51 | . . . . if tr == 3:
52 | . . . . . . f1.write('</tr>')
53 | . . . . . . f2.write('</tr>')
54 | . . . . . . tr = 0
55 |
56 | f2.write('</tr></table>\n')
57 | f2.write('</body></html>')
58 | f2.close()
59 | f1.write('</tr></table>\n')
60 | f1.write('</body></html>')
61 | f1.close()
62 |
63 | print 'Done.'
— // Наверняка, что-то можно было бы сделать лучше... //
/ Я вас отвезу! Скорей! Я же только учусь... /
= О поле, поле кто тебя усеял?
/ Я думаю, Семён Семёныч, что каждый человек способен на многое. Но, к сожалению, не каждый знает, на что он способен. /
— В принципе то же самое, но разберем отличия:
1. итог выводится не на экран, а в файл. Точнее в два файла "quadratic.htm" — задания и "answer.htm" ответы.
2. т.к. это HTML файлы, то не помешает записать «шапки» файлов (строки 23 — 26) и правильно завершить файлы (строки 56 — 61).
3. для приятного восприятия (и экономии бумаги) информацию записываем в таблицы (за число столбцов отвечает переменная tr, точнее строка 51)
4. для удобства пользования введена нумерация задач (за это дело отвечает переменная count)
5. изменена функция Генератор Чисел (gen_number). Я посчитал, в предыдущей версии, могут получаться слишком громоздкие числа и это может затормозить «молниеносность»
В данном случае задумывается одно число однозначное, второе как и было...
— Ну, вот и все, остальные отличия — мелочь.
= Все это очень хорошо, но я просил помочь, а ты меня питонами пугаешь.
/ Ты что, глухонемой, что ли?
— Да!
— Понятно. /
— Ну ты даешь. В качестве примера в приложениях я дам тебе два файла, но дело в том, что там около 160 задач (удаление повторяющихся вариантов, не сделано), а если завтра тебе окажется этого мало. Тогда пожалуйста. Запускай программу измени пару, тройку строк и получи лист с нужными задачами.
Теперь распечатай файлы и за работу.
— Повторюсь. ТщательнЕЕ нужно готовится к выступлениям, тщательнЕЕ.
— Тебе потребуется мгновенно выяснить делители свободного члена. Я посмотрел в Интернете запрос «признаки делимости» - довольно интересно, 2 и 5 ты и так знаешь, посмотри только 3, а с 11 — достаточно просто, тебе встретятся только 22, 33, 44 и т.д. имеет смысл запомнить ряды для 13 (26, 39, 52...) и 17 (34, 51, 68...)
— Далее, ты помнишь правила знаков?
= Да там все просто, я все понял.
/ Да… Бедняга. Ребята, на его месте должен был быть я!
— Напьёшься — будешь. /
— Этого совершенно не достаточно. Решения уравнений должны быть максимально быстры, а этого не достичь без тренировок и упражнений данных в приложении «маловато будет».
Питон (Python) можно инсталлировать в ЛЮБОЙ операционной системе, а в Ubuntu он стоит по умолчанию. Учебников и советов в Интернете достаточно, если надо обращайся и ко мне, я хотя и не волшебник люблю все чудесное.
/
Теперь вот такое предложение. А что, если…
— Не стоит.
— Ясно. Тогда, может быть, нужно…
— Не нужно.
— Понятно… Разрешите хотя бы…
— Вот это попробуйте! Вам поручена эта операция, так что действуйте.
/
Сто тысяч зрителей по рублю
Сто тысяч зрителей по одному рублю!..
Это будит!.. Это будит!..
Семь пишем, два на ум пошло...
... Бешеные деньги!..
— Рассказывай. Как успехи.
= Норма-а-а-льно.
/ а что она, а что она, она по прежнему не мной увлечена /
— А подробнее.
= Новизна фокуса прошла. Все уже знают секрет. Но мы нашли еще одно применение: проверяем правильность решения КУ, очень удобно.
= Но у меня два вопроса.
— Попробуй.
= 1. как ты узнал сколько получится формул?
— Подобную задачу я решал еще в 9 классе.
В те времена я прочел рассказ Артура Кларка «Девять миллиардов имен Бога.» и меня заинтересовало — вот это ЧИСЛО писатель просто выдумал или все таки вычислил, я решил проверить. Решение искал очень, ОЧЕНЬ долго, смешны теперь две вещи, во-первых решение можно было найти за час-полтора, и второе, совершенно не помню, что у меня получилось, т.к. процесс решения забрал столько сил и вызвал такую гордость.... что в результате получилась подмена целей и конечная ЦИФРА меня уже не столь интересовала. Ну можно назвать и третью причину для смеха, в 10 классе я узнал, что МОИ формулы носят имя очень известного (общеизвестного) ученого.
= Конечно, это очень интересно, но я хотел бы конкретики.
— Хорошо, приступим, данная задача намного проще. Поинтересуйся в тексте программы; сколько вероятных значений может принять второй корень.
= Сейчас сообразим..... 8 значений.
— Ну, а первый корень может принимать одно из пяти значений.
— Значит так, переберем не повторяющиеся комбинации значений корней:
запишем в список 8 вариантов значений x2 при x1 = 1
добавим в список 8 вариантов значений x2 при x1 = 2
добавим 8 вариантов значений x2 при x1 = 3
.............
= Остановись, все предельно понятно 8 * 5 = 40
— Далее. У нас возможны 4 варианта распределения знаков по корням.
= Ясно! 40 * 4 = 160. Но ты сказал что будет меньше.
— Посмотри на 39 строку. Мы исключили из рассмотрения равные корни с разными знаками, т.к. уравнение x2 — 0x — 25 = 0 ну уж слишком очевидно. Если очень хочется узнать, точное число комбинаций, то есть два пути или вычислить сколько будет этих самых, разнополых близнецов или написать программу удаления повторяющихся значений : )
= Но практика показала, что даже 110[для второй версии данного текста я отсортировал список уравнений удалив повторы] слишком мало.
— Как я понял мы подползли ко второму вопросу. Именно для этого я тебе дал текст программы, коею надо изменить.
— Согласен, разбираться в чужой программе тяжело. Но попробуем. Есть два варианта — выбирать тебе.
1 — вернуться к функции gen_number() из первой версии программы.
= Так, 8 * 8 * 4 = 256.
2 - изменить 34 строку программы на x1 = gen_number(4) * gen_number(4)
= Пробуем, 8 * 5 * 5 * 4 = 800. Вот это уже достойно.
— Рад, что тебе понравилось, мне не трудно выложить еще парочку приложений, но решить такие уравнения в уме будет уже труднее (хотя возможно полезнее).
= Спасибо конечно, но, как я уже сказал, новизна прошла...
— Конечно, лежать на диванчике спокойнее.
знают, что все здесь изложенное чепуха, т.к. практической пользы для разумных людей в вышесказанном нет, но может найтись такой чудак, который сделает свои, для нас разумных неожиданные выводы.
Большая часть математики выросла из таких вот глуповатых, детских вопросов.
= Например?
Прочитай, как Джонатан Свифт издевался в «Путешествиях Гулливера» над Раймундом Луллием. И конечно же, этот умнейший человек не мог себе представить, что такая вот смешная «логическая машина Луллия» будет одним из истоков создания математической логики, а из нее вырастут и наши любимые компьютеры.
Ты прочитал книгу про Жар Холодных Чисел?
/ Опять ошибся в названии/[3]
= Ну,.... не дочитал.
— ТШёРТ ПОПеРи!!! Ну как мне заставить тебя учится!
— Давай современнее. Почитай о Великой теореме Ферма. 350 лет сильнейшие математики решали задачу — условие которой записывается в одну строчку, да, задача решена, но главное, попутно открыты новые пути, разработаны новые методики...
Ладно, давай не будем претендовать на великие открытия. Но развить свои способности тебе вполне доступно.
= Предлагаешь в цирке удивлять фокусами?
— Неплохая мысль. Цирк и занимается демонстрацией сверх возможностей человека.
Но фантастическими возможностями вычислений обладали как известные ученые (на ум приходит индийский математик Сриниваса Рамануджан) так и не известные счетоводы ( подпольный Корейко).
А лишних знаний и умений не бывает. Меня всегда возмущает афоризм
«Учиться никогда не поздно» - отличная отмазка для лентяев «Если никогда не поздно - отложим»
Можно привести сотни примеров, когда... поздно, - простейший:
В темном переулке тебе навстречу идут трое...
Давай введем новый афоризм «Учись пока не поздно!»
Ни я, ни кто-либо другой не могут гарантировать, что изучение такой-то темы приведет тебя к небывалым успехам. Но любой тебе скажет, что спокойное, жвачное лежание на диване приведет только к ожирению мозга.
= Понятно. Как говорят древние... «Айнун цванцих — фирун зихцих», что означает
«Никто не знает где начало того конца, которым оканчивается начало».
* * *
— Интересно, помнишь ли ты с чего я начал это повествование?
= Отлично помню, со старческого ворчания.
— И все-таки мне хочется понять, для чего можно использовать квадратные уравнения.
= Я тоже поинтересовался, нашел презентацию одного восьмиклассника, вычисление площадей, взлет самолета, стрельба из пушки, фонтаны, архитектура и прыжки в высоту. Практически я занимался только последним, но обходился без уравнений.
— Да, в интернете можно найти многое, вот один десятиклассник написал работу более подробную в том числе привел:
Разные способы решения квадратных уравнений
1. СПОСОБ: Разложение левой части уравнения на множители.
2. СПОСОБ: Метод выделения полного квадрата.
3. СПОСОБ: Решение КУ по формуле.
4. СПОСОБ: Решение уравнений с использованием теоремы Виета.
5. СПОСОБ: Решение уравнений способом «переброски».
6. СПОСОБ: Свойства коэффициентов КУ.
7. СПОСОБ: Графическое решение КУ.
8. СПОСОБ: Решение КУ с помощью циркуля и линейки.
Как видишь, наш способ четвертый.
Если опять посмотреть на систему Диофанта и изложить ее словами получится:
«Дана площадь прямоугольника и его полупериметр найти его стороны» честно говоря, трудно себе представить, такую задачу в практике.
Квадратные уравнения нужны для решения задач с телом брошенным под углом к горизонту. Потому что траекторией движения этого тела является парабола. Под эту строку попадает большинство упомянутых тобою задач.
Ссылка на применение в архитектуре.... не совсем точно. Чаще в строительстве применяется не парабола а внешнее похожая на нее - цепная линия, очень интересная штука.
Вот, что говорит по этому поводу Википедия:
Цепная линия — линия, форму которой принимает гибкая однородная нерастяжимая тяжелая нить или цепь (отсюда название) с закрепленными концами в однородном гравитационном поле.
y = (a/2)*(ex/a + e-x/a)
Мыльная пленка, натянутая на два кольца, принимает форму катеноида — поверхности, возникающей в результате вращения цепной линии.
Перевернутая цепная линия — идеальная форма для арок. Перевернутая мыльная пленка — идеальная форма для ангаров.
В нете выяснилось, что мой вопрос (запрос) не оригинален вот фрагмент форума:
«
Где в жизни могут пригодиться квадратные уравнения по алгебре 8 класса?
Mefody66
2 года назад
90% задач школьной алгебры от изучения квадратных уравнений и до 11 класса, и даже частично первые курсы института - это задачи, которые сводятся к квадратным.
Изначально уравнения могут быть какими угодно - степенными, логарифмическими, тригонометрическими, даже интегралы.
Собственно, все обучение на то и рассчитано - свести уравнение к квадратному, способ решения которого известен.
Странно, что они не учат решать хотя бы кубические уравнения. Формулы Кардано было бы достаточно.
Я уж молчу про уравнения 4 степени и теорему, что уравнения 5 степени и выше принципиально неразрешимы в радикалах.
Так что на ваш вопрос ответ однозначный - квадратные уравнения нужны для дальнейшего обучения.
А вот после обучения - да, они почти совсем не нужны.
Irina8
2 года назад
Это не так важно, может они вообще нигде не пригодятся на практике в жизни. Но знание, которое даёт математика - умение мыслить, очень пригодится в жизни. Развитие ума и умственных способностей ещё не кому не помешали. Это помогает правильно рассуждать, предусматривать каждый шаг и позволяет вовремя понять и оценить свои поступки. Математика людям помогает хорошо устроиться в жизни и быть счастливым, так как он заранее может рассчитать все результаты своего сделанного шага и вовремя свернуть с неправильного направления.