|
14 / 10 / 5
Регистрация: 16.09.2012
Сообщений: 89
|
|
Функция 20-значного числа03.03.2025, 00:26. Показов 2335. Ответов 14
Метки нет (Все метки)
Всем здрасте!
Такая задачка, написать функцию в которую подается 20-значное число, а возвращается единственное число соответствующее маске у00000000000000хххххх, где х это любая цифра, количество цифр х отличных от 0 не более 6, число нулей не ограничено и общее количество цифр числа не ограничено, т.е. это может быть и более короткое, и более длинное число, так и 20-значное. И соответственно нужна также еще одна функция, обратная первой, которая восстанавливает исходное число. deepseek попыхтел-попыхтел-задымил и не справился с этой задачей, а изучающие python возможно найдут решение?
0
|
|
| 03.03.2025, 00:26 | |
|
Ответы с готовыми решениями:
14
Определить произведение цифр заданного k-значного числа Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей другого (само другое числ Дано вещественное число A и целое число N (> 0). Вывести 1 + A + A2 + A3 + + AN. Дано вещественное число A и целое числ |
|
wound up as Aussie
463 / 115 / 20
Регистрация: 15.05.2019
Сообщений: 455
|
|||||||
| 03.03.2025, 04:02 | |||||||
|
(чтобы вы не ввели, выводит только маску xxxxxx, впереди заполняет нулями, лишнее откидывает)
Ответ из IDLE : Маска: y0000000000000475839 Восстановленное число: 475839
0
|
|||||||
|
14 / 10 / 5
Регистрация: 16.09.2012
Сообщений: 89
|
|||||||||||
| 03.03.2025, 09:37 [ТС] | |||||||||||
|
Примерно такое он мне и выдавал несколько раз.
Решение я вчера придумал сразу после того как написал здесь текст задачи. Но оно мне совершенно не симпатично:
Во вторых: размер b это явный перебор, хотелось бы в ответе получить b более приемлемое, например из 20-значного получить тоже 20-значное, ну или хотя бы 22-значное, а еще лучше так и вовсе 18-значное. Надеюсь может быть найдется более приемлемое решение задачки, в том числе и для 999-значных чисел. Кстати, если это решение показать ии, что получится, станет ли он умнее, найдет ли свое лучшее решение, или так и будет упорствовать с масками? ИИ ищет в своей памяти хоть чем то похожую задачу, и не найдя ничего подобного пишет такую чепуху:
0
|
|||||||||||
|
wound up as Aussie
463 / 115 / 20
Регистрация: 15.05.2019
Сообщений: 455
|
|||||||
| 03.03.2025, 14:20 | |||||||
Ошибка MemoryError возникает из-за строки: return "1" + "0" * int(num_str[:-6]) + num_str[-6:] Здесь int(num_str[:-6]) может быть слишком большим, и при его использовании для умножения строки "0" * огромное число память переполняется. Исправленный код по рабочей третьей программе: Вместо int(num_str[:-6]) можно просто использовать длину строки числа. Используем len(num_str) - 6 вместо int(num_str[:-6]) — теперь программа не создаёт огромное число. Код безопасен даже для чисел в тысячи разрядов. Используем mpmath.mpf для восстановления числа, чтобы поддерживать большую точность. Вот ответы из моего IDLE: a = 345959345934934987890.0 len(a) = 23 b = 1000000000000000007890.0 len(b) = 24 c = 177890.0 a == c -> False a = 34595934593443545345345345345934987890.0 len(a) = 40 b = 100000000000000000000000000000000007890. 0 len(b) = 41 c = 347890.0 a == c -> False # Точность увеличил до 60, но можно и больше.... a = 3459593459347567356735673567435453453453 45345934987890.0 len(a) = 56 b = 1000000000000000000000000000000000000000 000000000007890.0 len(b) = 57 c = 507890.0 a == c -> False (эта прога от ИИ считает мгновенно).
0
|
|||||||
|
14 / 10 / 5
Регистрация: 16.09.2012
Сообщений: 89
|
|
| 04.03.2025, 00:10 [ТС] | |
|
- теперь программа не создаёт огромное число - и не решает задачу)))
Далее ии напишет: "Вы правы, я допустил ошибку, не проверив корректность работы функций. Давайте исправим это и сделаем так, чтобы все работало правильно. Я также добавлю проверку, чтобы убедиться, что исходное число восстанавливается корректно." Вижу мой вопрос хоть кому то интересен. А если бы знали что решение задачи не пустое развлечение, и может иметь вполне практическое применение, то даже возможен некоторый бонус в виде полезного продукта в котором будут использованы эти функции...
0
|
|
|
wound up as Aussie
463 / 115 / 20
Регистрация: 15.05.2019
Сообщений: 455
|
||
| 04.03.2025, 01:19 | ||
|
В смысле, что Вам надо решить конкретно? Хоть бы намекнули... Добавлено через 57 минут Проблема с числом больше 16 цифр: Суть проблемы заключается в том, как работает операция "0"*int(num_str[:-6]). Слишком большое число: Когда ты создаёшь строку из нулей с помощью "0"*int(num_str[:-6]), ты пытаешься создать очень длинную строку, которая в случае числа с более чем 16 цифрами вызывает проблемы: Например, если у тебя число из 17 цифр, то num_str[:-6] извлекает первые 11 цифр. Если ты пытаешься создать строку из 11 миллиардов нулей (что эквивалентно числу из 11 цифр), это выходит за пределы возможных строковых операций в Python. Ограничения на строки в Python: Строки в Python не могут быть настолько длинными, если количество символов превосходит возможности памяти или внутренних ограничений интерпретатора. Почему работает с числами до 16 цифр? Для числа до 16 цифр операция создания строки из нулей будет работать корректно, поскольку: Число, которое ты берёшь для создания строки "0"*int(num_str[:-6]), в этом случае не будет слишком большим. Для 16 цифр у тебя создается строка не более чем из 10^6 нулей, что не выходит за рамки стандартных строк в Python. Это похоже на создание очередного minera.... (или суперфермы).
0
|
||
|
14 / 10 / 5
Регистрация: 16.09.2012
Сообщений: 89
|
||||||||
| 04.03.2025, 12:08 [ТС] | ||||||||
|
miner это наверно круто, но не интересует ((
ИИ мог бы хотя так пошутить:
0
|
||||||||
|
wound up as Aussie
463 / 115 / 20
Регистрация: 15.05.2019
Сообщений: 455
|
||||||
| 05.03.2025, 00:25 | ||||||
''' почему возвращает не 498789, а 178789 ? ChatGPT said: Ошибка связана с тем, как вы пытаетесь восстановить число в restore_number(). Давайте разберёмся подробно. Разбор ошибки Пример с входными данными: a = mp.mpf('345959345934934987890') После применения mask_number(a), оно превращается в: b = "21:3000000000000000007890" Где: 21 — длина оригинального числа. "3000000000000000007890" — маскированное число (первая цифра сохранена, остальные заменены на 0, последние 6 цифр сохранены). Ошибка происходит в этой строке: restored = masked[0] + "0" * (length - 7) + masked[-6:] Если masked = "3000000000000000007890", то: masked[0] = "3" masked[-6:] = "7890" length - 7 = 21 - 7 = 14, значит, вставится 14 нулей. Результат: restored = "3" + "00000000000000" + "7890" # 3 + 14 нулей + 7890 # Получается 3000000000000000007890, что не соответствует оригиналу! Но почему 178789? Ошибка связана с обработкой строк: при вычислении masked[0] + "0" * (length - 7) + masked[-6:], возможны лишние преобразования строк в число. '''
0
|
||||||
|
14 / 10 / 5
Регистрация: 16.09.2012
Сообщений: 89
|
|
| 05.03.2025, 12:13 [ТС] | |
|
Данная задача не может быть решена с помощью ии.
Это должно быть понятно, т.к. соображалки у ии нету, а есть только набор только тех функций которые уже известны миру и которые людьми уже протестированы. Почему меня не интересуют майнеры, потому что их задачи уже кем то решены, хотя можно попытаться воспользоваться их опытом, в этом что то есть.
0
|
|
|
wound up as Aussie
463 / 115 / 20
Регистрация: 15.05.2019
Сообщений: 455
|
||
| 06.03.2025, 04:42 | ||
|
0
|
||
|
14 / 10 / 5
Регистрация: 16.09.2012
Сообщений: 89
|
|
| 06.03.2025, 11:53 [ТС] | |
|
В геометрии, алгебре, программировании если задача решается одним способом, то зачастую находится еще несколько способов получить такой же ответ. Версия с не симпатичным b показывает что решение поставленной задачи имеется. А значит возможно существует иной способ решения, но для его успешного поиска очевидно требуется весьма оригинальное мышление.
IQ тесты выявляют особо одаренных, при включении в них аналогичных задач-вопросов, достигнуть высшего балла станет не только труднее, но и невозможно. И что Вы хотите от ии, у него то какой IQ? )))
0
|
|
|
wound up as Aussie
463 / 115 / 20
Регистрация: 15.05.2019
Сообщений: 455
|
||||||||||||
| 06.03.2025, 16:18 | ||||||||||||
|
Вот уже целую неделю я его "мучаю" разными вопросиками (в основном по java). ![]() Конечно, в наши дни, ИИ пока не сможет решить большие задачи сам - ему нужно подсказывать что и куда (кстати, это не факт, что такого нет. Просто нет в общем доступе). Но похоже что лет через 10 (если ничего не изменится) работа программиста (человека) будет просто помножена если не на ноль, то на очень маленькое десятичное число!!! (нечто похожее и у Вас в программе, кстати). ![]() Добавлено через 1 час 6 минут Кстати, у меня появилась одна идея (по этой теме), и я ему начал объяснять. После третьего объяснения он выдал код, но вдруг завис - я успел скопировать и проверить - вроде было правильно. Но в GPT было написано, чтобы я перегрузил сообщения. Когда перегрузил, то этого ответа уже не было, а была чушь какая-то. В общем, вот это вроде похоже на правильное решение:
и вот из IDLE :
![]() pps: А если подходит, то можете закрывать тему зелёной галочкой.
0
|
||||||||||||
|
14 / 10 / 5
Регистрация: 16.09.2012
Сообщений: 89
|
||||||||
| 06.03.2025, 18:39 [ТС] | ||||||||
|
восстановленное число здесь написано в предпоследней строке, и они не равны. В соответствии с описанием задачи, нужна функция, обратная первой, а в первую функцию подается 123456789012342342345342352352350, вот его и надо восстановить (предположим из 100000000000000234234), и сравнить с самым первым (исходным)(входящим)(первоисточником), и получить желаемое True. Примерно так может выглядеть проверка:
0
|
||||||||
|
14 / 10 / 5
Регистрация: 16.09.2012
Сообщений: 89
|
|
| 12.03.2025, 21:31 [ТС] | |
|
Спросите у google какой iq у ии, и он даст ответ:
Какой IQ у ChatGPT? Наконец, сколько же баллов набрал ChatGPT? На основании 5 субтестов его вербальный IQ равен 155, то есть он превосходит 99,9% испытуемых, составляющих стандартную для этого теста выборку из 2450 человек. И с таким высочайшим показателем iq, ии так и не дал решения по мой задаче, он также не написал что решения подобной задачи нет и быть не может. В отличие от ии, если меня есть хоть какое то, пусть и не симпатичное, но все же реально работающее решение поставленной задачи программирования, то означает ли это что мой iq выше чем у ии? Логично? )))))))))))))))))))))))))))))))))))))))) ))))))
0
|
|
| 12.03.2025, 21:31 | |
|
Помогаю со студенческими работами здесь
15
Вывод простых числ через лямбда-функцию Написать программный код в соответствии со своим вариантом, выполнение основного функционала оформить в отдельной функци Удалить из массива последнее нечетное большее 50 числ Нужна помощь с функцией Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|