Автор | Сообщение |
|
| Администратор
|
Сообщение: 2955
|
|
Отправлено: 18.10.21 21:10. Заголовок: Задачи 17.202 и 17.203
Павел С. пишет: цитата: | "В файле 17-202.txt содержится последовательность целых чисел, которые принимают значения от -10000 до 10000 включительно. Тройка идущих подряд чисел последовательности называется уникальной, если только второе из них является положительным трёхзначным числом, заканчивающимся на 5. Определите количество уникальных троек чисел, а затем – максимальную из всех сумм таких троек." Словосочетание "только второе" явно указывает на то, что в массиве М, состоящем из трех числе чисел ТОЛЬКО ВТОРОЕ число должно быть трехзначным, быть > 0 и заканчиваться на 5. Из чего следует, что первое и третье НЕ должны быть таковыми. Другими словами "последовательности называется уникальной", только при соблюдении следующей логики: М[1] попадает под Условие И М[0] НЕ (попадает под Условие ) И М[2] НЕ (попадает под Условие) , где М - это массив из трех чисел; Условие - "должно быть положительным трёхзначным числом, заканчивающимся на 5"; Однако результат решения задачи совпадает с правильным, только при логике: М[1] попадает под Условие, М[0] И М[2] - ЛЮБОЕ ЧИСЛО; |
|
Вот решение, у которого ответ совпадает с приведенным: data = [int(x) for x in open('17-202.txt')] def cond(x): return 100 <= x < 1000 and x % 10 == 5 ma = 0 count = 0 for i in range(2,len(data)): if (not cond(data[i-2])) and cond(data[i-1]) and \ (not cond(data[ i])): count += 1 ma = max(ma, sum(data[i-2:i+1])) print( count, ma ) цитата: | задача 203 демонстрирует ту же логическую ошибку |
|
Вот решение задачи 203: data = [int(x) for x in open('17-202.txt')] def cond(x): return 100 <= x < 1000 and x % 100 == 12 ma = 0 count = 0 for i in range(2,len(data)): if (not cond(data[i-2])) and cond(data[i-1]) and \ (not cond(data[ i])): count += 1 ma = max(ma, sum(data[i-2:i+1])) print( count, ma )
|
|
|
Ответов - 22
, стр:
1
2
All
[только новые]
|
|
|
Отправлено: 19.10.21 17:13. Заголовок: Информатика - это то..
Информатика - это точная наука. Это не история. Тут не может быть двух мнений. trye - это всегда истина, а false - всегда ложь. Спрошу прямо: Вам не кажется, что это задание сформулировано так ,что на него сложно дать однозначное правильное решение?
|
|
|
|
| Администратор
|
Сообщение: 2966
|
|
Отправлено: 19.10.21 17:17. Заголовок: gk.aledar пишет: Вам..
gk.aledar пишет: цитата: | Вам не кажется, что это задание сформулировано так ,что на него сложно дать однозначное правильное решение? |
|
Нет, не кажется.
|
|
|
|
Отправлено: 19.10.21 19:22. Заголовок: Давайте ещё раз. тол..
Давайте ещё раз. цитата: | только второе из них является положительным трёхзначным числом, заканчивающимся на 5 |
| Даю вам 3 числа 1005 115 127 ВОПРОС - почему по вашему мнению эта тройка НЕ ПОДХОДИТ под это условие?
|
|
|
|
Отправлено: 14.11.21 13:22. Заголовок: № 4419 не сходится ответ
(№ 4419) (П. Финкель) В файле 17-199.txt содержится последовательность целых чисел, которые принимают значения от -10000 до 10000 включительно. Тройка идущих подряд чисел последовательности называется уникальной, если только второе из них является положительным двузначным нечётным числом. Определите количество уникальных троек чисел, а затем – максимальную из всех сумм таких троек. count=0 for i in range(2,len(s)): if not(int(s[i-2])%2==1 and 1000>int(s[i-2])>=100) and not(int(s)%2==1 and 1000>int(s)>=100) and (int(s[i-1])%2==1 and 1000>int(s[i-1])>=100 ): count+=1 print(count) выводит количество: 94 что не так? может в генераторе ответ неверный?
|
|
|
|
Отправлено: 14.11.21 14:58. Заголовок: Ответ
В условии задачи: цитата: | ... если только второе из них является положительным двузначным нечётным числом. |
|
|
|
|
|
Отправлено: 15.09.22 18:41. Заголовок: подскажите, почему з..
подскажите, почему здесь: for i in range(2,len(data)) именно от двух?
|
|
|
|
| Администратор
|
Сообщение: 3687
|
|
Отправлено: 16.09.22 13:33. Заголовок: smth000 пишет: почем..
smth000 пишет: цитата: | почему здесь: for i in range(2,len(data)) именно от двух? |
|
Потому что в теле цикла есть обращение к s[i-2].
|
|
|
Ответов - 22
, стр:
1
2
All
[только новые]
|
|