Читать «Система Диофанта» онлайн - страница 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)