Система Диофанта 2 (Cat) - страница 2
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('
') |