Форум программистов, компьютерный форум, киберфорум
Алгебра, теория чисел
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/16: Рейтинг темы: голосов - 16, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 20.04.2014
Сообщений: 58
1

Система счисления Фибоначчи

13.11.2014, 10:11. Показов 2978. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Члены классического ряда Фибоначчи вычисляются по следующему правилу .
Любое натуральное число можно представить в виде суммы неповторяющихся чисел Фибоначчи, например: и так далее.
Закодируем натуральное число следующим образом: если в сумме присутствует число Фибоначчи с номером , то в соответствующей позиции, начиная справа, ставится единица; если число Фибоначчи с номером отсутствует в сумме, в соответствующей позиции ставится ноль, например: .
Последовательность четных чисел от 2 до 500 отсортировали по возрастанию количества единиц в представлении числа в коде Фибоначчи. При равном количестве единиц в представлении чисел раньше идет меньшее число. После сортировки на позиции с номером 150 будет находиться число …

Не понимаю. Мне бы ответ хотя бы правильный, чтобы я к нему пришел
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2014, 10:11
Ответы с готовыми решениями:

Двоичная система счисления
Может не тот раздел но есть вопрос.Прочитал про способ преобразование десятичных чисел в двоичные....

Двоичная система счисления
Определите наибольшее число, двоичное представление которого, можно записать в строчку тетради,...

Пятеричная система счисления
Пятеричная система счисления. Используется ли где данная система счисления? Стоит ли тратить время...

Шестеричная система счисления
Какое наибольшее число в шестеричной системе счисления можно записать трехзначным числом в...

6
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
13.11.2014, 11:35 2
Это получается фибоначчиева система счисления. Тут не может быть двух единиц подряд. Количество n-значных чисел - Fn.
Последовательность получается:
(000)1, (00)10, (0)100, 1000 ... (00)101, (0)1001, (0)1010, 10001 ... 10101 ...
Количество чисел в каждой группе из n цифр, включая ведущие нули, с k единицами - может быть, https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{{\left( k+1 \right)} ^ {n-2k+1}}{\left(n-2k+1\right)!}... ну, или что-то похожее. Чётные числа от 2 до 500 сводятся ко всем от 1 до 250, но вот 250 - число не круглое, так что с максимальной длиной числа, которое надо включать в эту последовательность, проблемы...
1
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
13.11.2014, 13:29 3
Формулы из задачи выброшены, так что задача не очень понятна. Представление чисел не однозначно, например единица может быть представлена двумя способами. Условия, что не допускаются две единицы подряд в задаче нет, что добавляет неоднозначности.

Добавлено через 1 минуту
wolf41, а задачу не на компьютере надо решать?
0
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
13.11.2014, 15:51 4
Я тоже думал насчёт неоднозначности представления. Не самая чёткая формулировка, может быть, но всё же там написано:
если в сумме присутствует число Фибоначчи с номером , то в соответствующей позиции, начиная справа, ставится единица
0
1178 / 429 / 194
Регистрация: 23.03.2020
Сообщений: 1,016
Записей в блоге: 1
05.10.2020, 19:34 5
Лучший ответ Сообщение было отмечено wolf41 как решение

Решение

Ответ: 100000101001

На PascalABC.NET программа выглядит так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Function FCC(n: integer; F: array of integer): string; //переводим число n в систему счисления Фиб.
begin
  Result := '';
  var Fimax := f.FindLastIndex(t-> t <= n);
  For var j := Fimax downto 1 do 
   if n >= F[j] then 
     begin Result += '1'; n -= F[j] end 
   else Result += '0'; 
end;
 
begin
 var fib := SeqWhile(1,1, (a,b) -> a + b, fib -> fib <= 500).toArray; //ряд Фибоначчи до 500
 Range(2,500,2) //Создаем массив от 2 до 500 с шагом 2
 .Select(t-> FCC(t,fib)) //Переводим числа в систему счисления Фибоначчи (типа String)
 .Select(t-> (t,t.Count(g→g='1'))) //Создаем кортежи (число в ФСС, кол-во единиц в нём)
 .OrderBy(t->t[1]) //Сортируем массив по правому элементу кортежа (т.е. по кол-ву единиц)
 .ToArray[149][0].Print; //Выбираем 150 элемент, индекс его 149, т.к. первый элемент имеет индекс 0
end.
0
2719 / 1773 / 187
Регистрация: 05.06.2011
Сообщений: 5,132
06.10.2020, 05:52 6
Цитата Сообщение от palva Посмотреть сообщение
Условия, что не допускаются две единицы подряд в задаче нет
На всякий случай: как понимаю, есть. Прямо в теме — система счисления Фибоначчи. Это вполне себе термин.
1
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
06.10.2020, 14:44 7
iifat, здесь я скорее пытался спровоцировать топикстартера на общение или хотя бы проверить его на способность отвечать на вопросы. Но увы! Он брезгует с нами общаться.
1
06.10.2020, 14:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2020, 14:44
Помогаю со студенческими работами здесь

Система счисления и нумерация
Система счисления и нумерация это одно и то же или нет?

Семеричная симметричная система счисления
В этой системе счисления цифры обозначаются так .....(числовое значение) C = -3 B = -2 A = -1...

Система счисления Фибоначчи
Подскажите, пожалуйста, как реализовать на лиспе перевод числа в систему счисления Фибоначчи....

Система счисления (из 2-ой в 8-ю систему счисления)
Система счисления (из 2-ой в 10-ю,из 10-ю в 8-ю систему счисления)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru