|
14 / 10 / 5
Регистрация: 16.09.2012
Сообщений: 89
|
|
Функция 20-значного числа03.03.2025, 00:26. Показов 2324. Ответов 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
462 / 114 / 20
Регистрация: 15.05.2019
Сообщений: 454
|
|||||||
| 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
462 / 114 / 20
Регистрация: 15.05.2019
Сообщений: 454
|
|||||||
| 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
462 / 114 / 20
Регистрация: 15.05.2019
Сообщений: 454
|
||
| 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
462 / 114 / 20
Регистрация: 15.05.2019
Сообщений: 454
|
||||||
| 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
462 / 114 / 20
Регистрация: 15.05.2019
Сообщений: 454
|
||
| 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
462 / 114 / 20
Регистрация: 15.05.2019
Сообщений: 454
|
||||||||||||
| 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 числ Нужна помощь с функцией Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|