W Cat - Система Диофанта
- Название:Система Диофанта
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
W Cat - Система Диофанта краткое содержание
Система Диофанта - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
/ Я считаю, что человеку можно верить только в самом крайнем случае./
Поэтому для зрительного восприятия отступов группы пробелов (табуляцию) я заменю группой точек и пробелов « . . »
= Ясно, при необходимости заменить их на табуляцию. Но не растягивай, у меня время поджимает.
/ Цигель, цигель ай лю-лю/
— Давай разберем, то, что сделано.
— Вариант первый (пробный) для выяснения принципа работы программы.
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 = ['', '
','']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('
\n')29 | f2.write('
\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('
')42 | . . . . . . f2.write('
')43 | . . . . f1.write('
\n')46 | . . . . f2.write('
\n')49 | . . . . count += 1
50 | . . . . tr += 1
51 | . . . . if tr == 3:
52 | . . . . . . f1.write('
')53 | . . . . . . f2.write('
')54 | . . . . . . tr = 0
55 |
56 | f2.write('
') 44 | . . . . f1.write(str(count) + ') x2 '+ show_numb(b*-1) + 'x ' +show_numb(c) + ' = 0' ) 45 | . . . . f1.write(' |
') 47 | . . . . f2.write(str(count) + ') x1 = '+ str(x1) + '; x2 = ' + str(x2) ) 48 | . . . . f2.write(' |
57 | f2.write('
')58 | f2.close()
59 | f1.write('\n')
60 | f1.write('
')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 классе.
Читать дальшеИнтервал:
Закладка: