Автор | Сообщение |
|
Отправлено: 13.04.22 05:07. Заголовок: задание 22 варианта №5 из генератора
Здравствуйте, Константин Юрьевич! Возник вопрос по решению 22 задания варианта №6 из генератора: (185 № 4000) Ниже записана программа, которая вводит натуральное число x, выполняет преобразования, а затем выводит результат. Укажите наименьшее значение x, при вводе которого программа выведет число 96. d ={} for x in range(1,10000): a = 5*x + 345 b = 5*x - 807 if b < 0: continue while a != b: if a > b: a -= b else: b -= a if not a in d: d[a] = x print( x, a ) Вопрос, для чего здесь используется пустое множество, которое заполняется какими-то «страшными» значениями? По-моему, проще рассуждать примерно так: 1) Программа зацикливается при значениях х меньше 162, следовательно, диапазон поиска необходимо начинать со значения не менее 162 2) Цикл while a != b: будет работать до тех пор, пока a не станет равно b, а b, в свою очередь, не станет равно 96, этот момент нам и нужно отследить: for x in range(162,1000): a = 5*x + 345 b = 5*x - 807 while a != b: if a > b: a -= b else: b -= a if a==96: print('x',x,'a',a, 'b',b) break Огромное спасибо за подсказку оператора - continue!
|
|
|
Ответов - 6
[только новые]
|
|
|
| Администратор
|
Сообщение: 3457
|
|
Отправлено: 13.04.22 14:18. Заголовок: s11kai пишет: Вопрос..
s11kai пишет: цитата: | Вопрос, для чего здесь используется пустое множество, которое заполняется какими-то «страшными» значениями? |
|
Действительно, здесь это не нужно. Там, кстати, не множество, а словарь, куда собираются все различные результаты. По сути эта программа решает такую задачу: сколько различных значений выведет программа... цитата: | Программа зацикливается при значениях х меньше 162, следовательно, диапазон поиска необходимо начинать со значения не менее 162 |
|
Согласен. цитата: | Цикл while a != b: будет работать до тех пор, пока a не станет равно b, а b, в свою очередь, не станет равно 96, этот момент нам и нужно отследить: |
|
Тоже согласен. Здесь не стоило мудрить.
|
|
|
|
Отправлено: 13.04.22 15:36. Заголовок: Спасибо Вам огромное..
Спасибо Вам огромное, Константин Юрьевичь! И за Ваш форум, и за Вашу способность прийти на помощь по первому зову! Поляков пишет: цитата: | Там, кстати, не множество, а словарь, куда собираются все различные результаты |
| Да, вполне возможно, видимо у меня уже склероз! Просто мне показалось, что где-то, Вы мне ответили, что фигурные скобки - пустое множество, но я не настаиваю, если найду ссылку, то покажу, впрочем. ВОЗМОЖНО это может обозначать и то, и другое Я не суеверен, но дай Вам Бог Здоровья и Долгие Лета!
|
|
|
|
Отправлено: 13.04.22 16:10. Заголовок: s11kai пишет: Да, в..
s11kai пишет: цитата: | Да, вполне возможно, видимо у меня уже склероз! |
| Прошу прощения, там, действительно - круглые скобки! Спасибо и за этот урок! До этого момента, для меня было, все что не квадратные скобки - множество Сегодня, благодаря Вам, я познакомился с новым понятием питона - словарь!
|
|
|
|
| Администратор
|
Сообщение: 3458
|
|
Отправлено: 13.04.22 19:14. Заголовок: s11kai пишет: я позн..
s11kai пишет: цитата: | я познакомился с новым понятием питона - словарь! |
|
Александр Иванович, очень рекомендую попрактиковаться со словарями. Очень хорошая штука, сильно помогает.
|
|
|
|
| Администратор
|
Сообщение: 3459
|
|
Отправлено: 13.04.22 19:15. Заголовок: s11kai пишет: фигурн..
s11kai пишет: цитата: | фигурные скобки - пустое множество |
|
Пустое множество - это set().
|
|
|
|
Отправлено: 14.04.22 01:01. Заголовок: Поляков пишет: Пуст..
Поляков пишет: цитата: | Пустое множество - это set() |
| Обидно конечно, но должен признаться, этого многообразия понятий мне уже не осилить, да и не к чему вроде, с 15 года на пенсии. А к Вам захожу, чтоб душой отдохнуть, былое вспомнить, как там было: 64 килобайта оперативки, 6 регистров со стеком да несколько команд типа: mov, sob, sub, ror...asl - твори не хочу... О, чувствую - чего-то распустил Спасибо
|
|
|
|