Автор | Сообщение |
|
Отправлено: 12.09.22 07:41. Заголовок: № 5515
Добрый день. Можно ли № 5515 решать так ? Если нет, то где ошибка? (№ 5515) (И. Степанов) Операнды арифметического выражения записаны в системе счисления с основанием 55. ZaYX55 – 2XaY55 В записи чисел переменной a обозначена неизвестная цифра из алфавита 44-ричной системы счисления. Определите наибольшее и наименьшее значение a, при котором значение данного арифметического выражения кратно 29. Для найденных значений a найдите модуль разности значений соответствующих выражений. var x, y, z, a, min, max: integer; f, p,k: biginteger; begin min := 44; max := -1; for x := 0 to 54 do for y := 0 to 54 do for z := 0 to 54 do for a := 0 to 43 do begin f := z * biginteger.Pow(55, 3) + a * biginteger.Pow(55, 2) + y * 55 + x - 2 * biginteger.Pow(55, 3) - x * biginteger.Pow(55, 2) - a * 55 - y; if (f mod 29 = 0) and (a < min) then begin min := a; p := f; end; if (f mod 29 = 0) and (a > max) then begin max := a; k := f; end; end; write(abs(k - p)); end.
|
|
|
Ответов - 14
[только новые]
|
|
|
Отправлено: 17.09.22 18:26. Заголовок: Ответ автора задачи
Здравствуйте. Дело в том, что вы не совсем поняли условие задачи, так как в ней была небольшая ловушка. X, Y и Z - это не переменные. Это цифры числа в 44-ричной системе счисления. A-1-, B-11, .., F -16, ......, X-33, Y-34, Z - 35. Соответственно не нужно перебирать X, Y, Z, Причем совершенно непонятно, почему перебор для 44-ричной системы счисления идет от 0 до 54. Таким образом программу нужно дорабатывать.
|
|
|
|
Отправлено: 03.05.23 04:00. Заголовок: Stepanoviv пишет: П..
Stepanoviv пишет: цитата: | Причем совершенно непонятно, почему перебор для 44-ричной системы счисления идет от 0 до 54. Таким образом программу нужно дорабатывать. |
| Если внимательно прочитать условие задачи, то можно заметить, что там нет 44-ричной системы счисления: "364 (И. Степанов) Операнды арифметического выражения записаны в системе счисления с основанием 55. В записи чисел переменной a обозначена неизвестная цифра из алфавита 55-ричной системы счисления. Определите наибольшее и наименьшее значение a, при котором значение данного арифметического выражения кратно 29. Для найденных значений a найдите модуль разности значений соответствующих выражений."
|
|
|
|
Отправлено: 19.09.22 09:06. Заголовок: Спасибо..
Спасибо
|
|
|
|
Отправлено: 19.09.22 09:06. Заголовок: Спасибо..
Спасибо
|
|
|
|
Отправлено: 20.09.22 16:46. Заголовок: Добрый день! Вы изме..
Добрый день! Вы изменили условие задачи 5515 и это понятно. Но и теперь НЕ ПОНЯТНО, почему X-33, Y-34, Z-35? Для этих значений ответ получается, но откуда и в какой системе счисления значение переменных ?
|
|
|
|
| Администратор
|
Сообщение: 3700
|
|
Отправлено: 20.09.22 16:55. Заголовок: Все цифры заданы в с..
Все цифры заданы в системе счисления с основанием 55.
|
|
|
|
Отправлено: 20.09.22 17:15. Заголовок: Спасибо! Тогда цифр ..
Спасибо! Тогда цифр 55, старшая 54 и откуда следует, что Z-35?
|
|
|
|
| Администратор
|
Сообщение: 3701
|
|
Отправлено: 20.09.22 17:24. Заголовок: Тверская пишет: отку..
Тверская пишет: цитата: | откуда следует, что Z-35? |
|
Первые 36 цифр - стандартные: 0123...9ABC...XYZ.
|
|
|
|
Отправлено: 20.09.22 17:26. Заголовок: Вот теперь СПАСИБО! ..
Вот теперь СПАСИБО! Огромное! Извините за бестолковость!
|
|
|
|
Отправлено: 04.04.23 11:52. Заголовок: Вариант с массивом и..
Вариант с массивом и без массивов по горнеру: Без массива: for a in range(55): s=((35*55+a)*55+34)*55+33-((2*55+33)*55+a)*55-34 # т.к. вычитаем, не забываем сменить знак на противоположный if s%29==0: min=s break for a in range(55): s=((35*55+a)*55+34)*55+33-((2*55+33)*55+a)*55-34 if s%29==0: print(a) max=s print(max-min) Ответ: 86130 С массивом: m=[] for a in range(55): s=((35*55+a)*55+34)*55+33-((2*55+33)*55+a)*55-34 if s%29==0: m.append(s) #при выполнении условия добавляем s в массив print(max(m)-min(m))
|
|
|
|
Отправлено: 04.04.23 11:59. Заголовок: Извините не учёл, что пробелы стираются - для наглядности заменил их точками.
Без массива: for a in range(55): ...s=((35*55+a)*55+34)*55+33-((2*55+33)*55+a)*55-34 # т.к. вычитаем, не забываем сменить знак ..................................................................................... на противоположный ...if s%29==0: ......min=s ......break for a in range(55): ... s=((35*55+a)*55+34)*55+33-((2*55+33)*55+a)*55-34 ...if s%29==0: max=s print(max-min) Ответ: 86130 С массивом: m=[] for a in range(55): ...s=((35*55+a)*55+34)*55+33-((2*55+33)*55+a)*55-34 ...if s%29==0: m.append(s) #при выполнении условия добавляем s в массив print(max(m)-min(m))
|
|
|
|
|
Отправлено: 03.05.23 04:57. Заголовок: Трухний пишет: Без ..
Трухний пишет: цитата: | Без массива: for a in range(55): ...s=((35*55+a)*55+34)*55+33-((2*55+33)*55+a)*55-34 # т.к. вычитаем, не забываем сменить знак ..................................................................................... на противоположный ...if s%29==0: ......min=s ......break for a in range(55): ... s=((35*55+a)*55+34)*55+33-((2*55+33)*55+a)*55-34 ...if s%29==0: max=s print(max-min) Ответ: 86130 |
| Как-то уж очень мудрено! Можно и без массива, и проще, например так: Max = Min = 0 for a in range(54+1): a1 = 35*55**3 + a*55**2 + 34*55 + 33 a2 = 2*55**3 + 33*55**2 + a*55 + 34 if abs(a1 - a2)%29 == 0: if Min == 0:Min = abs(a1 - a2) Max = abs(a1 - a2) print( Max - Min )
|
|
|
|
| Администратор
|
Сообщение: 3950
|
|
Отправлено: 04.04.23 12:03. Заголовок: Извините не учёл, ч..
цитата: | Извините не учёл, что пробелы стираются - для наглядности заменил их точками. |
|
А если прочитать, что написано на желтом фоне в верхней части страницы, то и не понадобится так делать.
|
|
|
|
Отправлено: 03.05.23 03:55. Заголовок: inform_lesson пишет:..
inform_lesson пишет: цитата: | Добрый день. Можно ли № 5515 решать так ? Если нет, то где ошибка? (№ 5515) (И. Степанов) Операнды арифметического выражения записаны в системе счисления с основанием 55. ZaYX55 – 2XaY55 В записи чисел переменной a обозначена неизвестная цифра из алфавита 44-ричной системы счисления. Определите наибольшее и наименьшее значение a, при котором значение данного арифметического выражения кратно 29. Для найденных значений a найдите модуль разности значений соответствующих выражений. |
| В разбираемой задаче нет ни единого слова о 44-ричной системе счисления!
|
|
|
|