Форум » Циклы и ветвления » задание 22 варианта №5 из генератора » Ответить

задание 22 варианта №5 из генератора

s11kai: Здравствуйте, Константин Юрьевич! Возник вопрос по решению 22 задания варианта №6 из генератора: (185 № 4000) Ниже записана программа, которая вводит натуральное число x, выполняет преобразования, а затем выводит результат. Укажите наименьшее значение x, при вводе которого программа выведет число 96.[pre2] 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 )[/pre2] Вопрос, для чего здесь используется пустое множество, которое заполняется какими-то «страшными» значениями? По-моему, проще рассуждать примерно так: 1) Программа зацикливается при значениях х меньше 162, следовательно, диапазон поиска необходимо начинать со значения не менее 162 2) Цикл while a != b: будет работать до тех пор, пока a не станет равно b, а b, в свою очередь, не станет равно 96, этот момент нам и нужно отследить: [pre2] 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[/pre2] Огромное спасибо за подсказку оператора - continue!

Ответов - 6

Поляков: s11kai пишет: Вопрос, для чего здесь используется пустое множество, которое заполняется какими-то «страшными» значениями? Действительно, здесь это не нужно. Там, кстати, не множество, а словарь, куда собираются все различные результаты. По сути эта программа решает такую задачу: сколько различных значений выведет программа... Программа зацикливается при значениях х меньше 162, следовательно, диапазон поиска необходимо начинать со значения не менее 162 Согласен. Цикл while a != b: будет работать до тех пор, пока a не станет равно b, а b, в свою очередь, не станет равно 96, этот момент нам и нужно отследить: Тоже согласен. Здесь не стоило мудрить.

s11kai: Спасибо Вам огромное, Константин Юрьевичь! И за Ваш форум, и за Вашу способность прийти на помощь по первому зову! Поляков пишет: Там, кстати, не множество, а словарь, куда собираются все различные результаты Да, вполне возможно, видимо у меня уже склероз! Просто мне показалось, что где-то, Вы мне ответили, что фигурные скобки - пустое множество, но я не настаиваю, если найду ссылку, то покажу, впрочем. ВОЗМОЖНО это может обозначать и то, и другое Я не суеверен, но дай Вам Бог Здоровья и Долгие Лета!

s11kai: s11kai пишет: Да, вполне возможно, видимо у меня уже склероз! Прошу прощения, там, действительно - круглые скобки! Спасибо и за этот урок! До этого момента, для меня было, все что не квадратные скобки - множество Сегодня, благодаря Вам, я познакомился с новым понятием питона - словарь!


Поляков: s11kai пишет: я познакомился с новым понятием питона - словарь! Александр Иванович, очень рекомендую попрактиковаться со словарями. Очень хорошая штука, сильно помогает.

Поляков: s11kai пишет: фигурные скобки - пустое множество Пустое множество - это set().

s11kai: Поляков пишет: Пустое множество - это set() Обидно конечно, но должен признаться, этого многообразия понятий мне уже не осилить, да и не к чему вроде, с 15 года на пенсии. А к Вам захожу, чтоб душой отдохнуть, былое вспомнить, как там было: 64 килобайта оперативки, 6 регистров со стеком да несколько команд типа: mov, sob, sub, ror...asl - твори не хочу... О, чувствую - чего-то распустил Спасибо



полная версия страницы