|
|
|
Выведите через пробел N цифр по заданному правилу23.12.2012, 15:32. Показов 6313. Ответов 8
Метки нет (Все метки)
Представим себе бесконечную последовательность цифр, составленную из записанных друг за другом возрастающих степеней десятки. Вот начало этой последовательности: 110100100010000… Всё, что надо — определить, какая цифра находится в такой последовательности на определённом месте.
Исходные данные В первой строке находится целое число N (1 ≤ N ≤ 65535). В i-й из N последующих строк записано целое число Ki — номер позиции в последовательности (1 ≤ Ki ≤ 2^31 − 1). Результат Выведите через пробел N цифр. i-я цифра должна равняться цифре, которая находится в описанной выше последовательности на позиции с номером Ki. ВВод: 4 3 14 7 6 Ответ: 0 0 1 0 Я так понимаю что первая цифра показывает сколько дальше цифр будет идти, допустим у них цифра 4-значит далее идут 4 цифры 3 14 7 6 это тоже понятно. Выведите через пробел N цифр. i-я цифра должна равняться цифре, которая находится в описанной выше последовательности на позиции с номером Ki. выведите через пробел понятно, а вот дальше что то не пойму.... к какой цифре она относится в этой последовательности 110100100010000...? получается тут к единице относится 1,2,4,7,11 и тд, я правильно понимаю?
0
|
|
| 23.12.2012, 15:32 | |
|
Ответы с готовыми решениями:
8
Выведите все символы строки через пробел Выведите (через пробел) все четные числа от a до b
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 23.12.2012, 17:23 | ||
|
То есть, если строка будет иметь вид 5 1 2 4 7 11 То ответ будет 1 1 1 1 1 Дам подсказку: внимательно всмотритесь в последовательность - в ней спрятана формула, часто используемая на уроках алгебры. Так что цикл не нужен.
0
|
||
|
|
||||||
| 25.12.2012, 09:58 [ТС] | ||||||
|
Это математическая прогрессия вроде, но вот проблема, я даже и не знаю как реализовывать в коде.
Я с циклами сделал, у меня теперь по времени не проходит(((( Напишите про эту формулу, почитаю на МСДН
0
|
||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 25.12.2012, 11:18 | ||
|
Я в качестве основы использовал формулу нахождения одного из корней квадратного уравнения: Попробуйте сами определить, чему в задаче равны a, b и c. Если результат вычисления этого выражения является целым числом, то на позиции n находится единица, в противном случае - ноль. Результат теста был что-то около сотни мс и 2Мб памяти. На сях вышло бы еще лучше. Возможно, вариант не самый оптимальный и есть другой, не требующий вычисления корня. Но я пришел к такому решению
1
|
||
|
|
|
| 25.12.2012, 12:27 [ТС] | |
|
ну и задачка....
Попробуйте сами определить, чему в задаче равны a, b и c, это каким образом? Я знаю только 2 стартовых параметра, первый:с какой цифры начинается, допустим 1 второй:какую цифру проверяем(1,2,4,7,11 и тд,) допустим 7. а третий то параметр для чего? Добавлено через 37 минут я даже формулы такой не могу найти в глобальной свалке, как я что должен подставить если не знаю как вообще она работает, я даже незнаю как она называется. Скажите пожалуйста просто название этой конкретной прогрессии. та которая 1 2 4 7 11 16 Меня уже раздражать начинает "искать ничего"
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||
| 25.12.2012, 14:01 | ||||||
|
В коде выглядит так:
0
|
||||||
|
|
|||||||
| 25.12.2012, 15:46 [ТС] | |||||||
|
Заранее извиняюсь про всё ниженаписанное, никого нехочу обидеть, просто нужно разобраться...
В числах фибоначи и в тех формулах еслиб так было просто разобраться уже сам сделал бы наверное всё сделал, не могу разобраться-пишу на форум.. есть формула в этой формуле 3 переменные b-это что? a-это что? c-это что? x+ - я так поолагаю ответ. в формуле после а если b=1 то как получается даже и незнаю как дальше продолжать? Хотелось узнать откуда цифры взялись или эта формула совсем другая? Добавлено через 1 час 1 минуту Неверно, в чем ошибка, их бот непонимает, всё время неправильный ответ
0
|
|||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||||||
| 26.12.2012, 01:13 | |||||||
Сообщение было отмечено как решение
Решение
Опишу свой ход мыслей во время решения этой задачи. Возможно, к решению пришел через одно место и все можно сделать намного проще. Если кто-то знает как именно - было бы здорово прочитать.
Опишу по шагам, чтобы по возможности не было вопросов в стиле "а это здесь откуда?" Условие: Дана бесконечная последовательность единиц и нулей, образованная восходящими степенями десяти, начиная с нулевой, стоящими друг за другом: 110100100010000100000100000010000000… Задание: Определить, какая цифра находится на заданной позиции Решение: Я решил сначала описать последовательность, состоящую из позиций, на которых находятся единицы (т.к. единиц здесь явно будет меньше, чем нулей), а потом просто проверить, принадлежит ли заданная x этой последовательности. Если принадлежит, значит на данной позиции находится единица, в противном случае - ноль. Итак, начало последовательности: 1, 2, 4, 7, 11, 16, 22, 29, 37 и т.д. Но так как строка может быть бесконечной, а заданная x может достигать значения 2 147 483 647, то фактически генерировать всю последовательность - нецелесообразно, а потому лучше найти формулу, которая определит, какое значение будет соответствовать указанной позиции в этой последовательности. Первый метод, который приходит в голову - это, конечно же, цикл или рекурсия: Но рекурсия отпадает сразу, а цикл - слишком долго. Следующий вариант, которым я и воспользовался - это представление последовательности полиномом такого вида: Где y - значение последовательности, х - порядковый номер этого значения, а a - константа. Перво-наперво нужно найти порядок полинома. Делаем через вычисление разности смежных значений: 1 2 4 7 11 11 - 7 = 4 7 - 4 = 3 4 - 2 = 2 2 - 1 = 1 4 - 3 = 1 3 - 2 = 1 2 - 1 = 1 Дошли до единиц на втором шаге, значит порядок полинома = 2, следовательно выглядеть он будет так: Осталось найти константы a, b и c. Как сказано выше, y - это значение последовательности, а x - порядковый номер (начиная с нуля). У нас три неизвестных константы, потому возьмем первые три значения последовательности и подставим их в выражение: Решаем систему уравнений методом Гаусса: Вторую строку множим на -4 и прибавляем к третьей: Меняем вторую и третью строку местами: Получился заветный "треугольник". Возвращаемся к системе: Подставляем С во второе уравнение: Подставляем C и B в третье уравнение: Результат: Подставляем значения констант в полином: Это и есть формула для нахождения элемента последовательности y на позиции x. Дело за малым - решить это уравнение. Сначала избавляемся от дроби, умножая обе стороны на двойку: Переносим 2y в правую часть, чтобы получилось красивое квадратное уравнение: Имеем квадратное уравнение вида Ну и, собственно, находим корни этого уравнения, а точнее - один из корней, т.к. отрицательных значений x у нас не предвидится по условию. Со школы помним (надеюсь), что корни квадратного уравнения подобного рода можно найти с помощью вот такой формулы: Подставляем значения: Раскрываем скобки: Собственно, вот она и формула. Напомню, что у - это порядковый номер элемента в строчке (то, что мы получаем в качестве входящих данных), а х - это номер из последовательности, соответствующий этому элементу, или, говоря проще, какая по счету единица находится на этой позиции. Если число получилось дробным, то на этом месте в строчке находится ноль. В качестве проверки можно попытаться сгенерировать последовательность единиц и нулей, используя эту формулу:
Вывод: задачи на тимусе - это больше задачи по математике с использованием языка программирования, нежели задачи по программированию как таковому.
5
|
|||||||
|
|
|
| 26.12.2012, 09:31 [ТС] | |
|
Круто! ...нет слов....
Математика у Вас на высоком уровне ![]() Я уже перестал понимать после "Решаем систему уравнений методом Гаусса:", но всеравно спасибо! Да, я вчера уже наконецто заметил что тимус не просто задания, а олимпиадные, соответственно хорошо подготовленные чтобы расплавить собственный мозг ![]() Мне тут посоветовали не останавливать обучение, всю книгу(видео) пройти до конца чтобы представлять(хотябы в общем) как это работает и уже начать свой проект. ещё сказал: "я так и сделал когда учился, много гуглил, было очень много вопросов, но на своем усваивается лучше". А идея на проект уже есть, если интересно могу отписать, там уже скажете возможно ли это)
0
|
|
| 26.12.2012, 09:31 | |
|
Помогаю со студенческими работами здесь
9
Выведите через пробел n чисел — числа ai в неубывающем порядке Выведите индексы искомых элементов через пробел в порядке возрастания Выведите индексы искомых элементов через пробел в порядке возрастания Выведите через пробел десять существительных, которые встречаются в тексте чаще всего
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
|
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
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|