Читать «Система Диофанта 2» онлайн

W Cat

Система Диофанта 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 (ясно все остальные вероятности = плюс) чем больше этих «ненужных» чисел, тем меньше вероятность выпадания минуса. Вот такая шутка.