Система Диофанта. 2 глава (old) [W Cat] (fb2) читать постранично
[Настройки текста] [Cбросить фильтры]
- 1
- 2
- 3
- . . .
- последняя (4) »
Система Диофанта 2
Написано для Артёма. Научи меня плохому.
Еролаш № 78.
= Спасай!!!
/ Шеф! Все пропало! /
= Шоу под угрозой, а отказаться нельзя.
/ Все, кина не будет. Электричество кончилось. /
- Что случилось?
/ У тебя там не закрытый… а открытый перелом? /
= Сгорел уже на третьей задаче! Хорошо еще, что хвалился своим друзьям, и как заклинило, отговорился, что надо делать уроки и т.п. Но завтра в школе они всем расскажут, и с меня потребуют демонстрацию.
/ Семё-ё-н Семёныч!… /
- Я тебе говорил, что фокусы, как и экспромты, надо тщательно готовить. Потренировался бы побольше, подготовил..., а это мысль... - Все мои проблемы я... = Я знаю, все твои проблемы ты решаешь программным путем. - Да, именно так. План такой: как генерировать квадратные уравнения мы знаем, а значит пишем программку...
/ Лёгким движением руки брюки превращаются… Брюки превращаются… Превращаются брюки… /
Так, это дело займет не пять минут, посмотри пока фильм. = Брильянтовую ногу? - Можно и это, но я имел в виду «Праздник святого Йоргена» ............ = Фу..... черно-белый! Немой!!! - Ну, и что. Фильм тридцатого года, но зато здорово объясняется, как надо готовить чудеса. ........... - Оторвись, потом досмотришь.
/ Дичь не улетит, она жареная /
- В последнее время я учусь работать с Питоном. Достаточно интересный язык, но особо хвалить или ругать рано, надо получше познакомится. - Но для начала одно предупреждение. Питон очень требователен к правильному применению отступов, к сожалению 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 ==
- 1
- 2
- 3
- . . .
- последняя (4) »
Последние комментарии
8 часов 59 минут назад
15 часов 21 минут назад
15 часов 29 минут назад
15 часов 57 минут назад
16 часов 1 минута назад
16 часов 2 минут назад