Читать «Система Диофанта» онлайн - страница 25
W Cat
Приложение 5. Последняя версия программы генерации задач
* Введена блокировка повторяющихся уравнений. (строки 48, 49 и функция comp_List)
* Убрав второй сомножитель в строке 41 — откажемся от усложнения уравнений.
* В строке 50 фрагмент «and abs(c) < 126» ограничивает величины цифр в уравнениях.
Ясно, что поиграв с кодом этого примера можно получить самые разнообразные листинги КУ.
.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 | def comp_List(L, m):
19 | . . for k in L:
20 | . . . . if k == m :
21 | . . . . . . return False
22 | . . return True
23 | . .
24 | TopList = ['<html>', '<head><title></title></head>','<body>']
25 |
26 | f = open("quadratic.htm", 'w')
27 | f2 = open("answer.htm", 'w')
28 |
29 | for ind in TopList:
30 | . . f.write(ind + '\n')
31 | for ind in TopList:
32 | . . f2.write(ind + '\n')
33 |
34 | f.write('<table width=100%>\n')
35 | f2.write('<table width=100%>\n')
36 | tr = 0
37 | count = 1
38 | List = []
39 |
40 | for i in range(50000):
41 | . . x1 = gen_number(4) * gen_number(4)
42 | . . x2 = gen_number(7)
43 | . . b = x1 + x2
44 | . . c = x1 * x2
45 | . .
46 | . . m = str(b) + ' ' + str(c)