Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Количество чисел Фибоначчи
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Одна страница
Модераторы: paradise, KMA
  

Guest



Новичок

Выполнить задание, если задана последовательность целых чисел длиной n.

1. Определить в заданной последовательности целых чисел количество чисел Фибоначчи.
2. Получить: min (a1 + an, a2 + an-1, ..., an/2 + an/2+1).

Всего сообщений: Нет | Присоединился: Never | Отправлено: 14 нояб. 2005 9:40 | IP
miss_graffiti


Долгожитель

э..
что есть числа Фибоначчи?
то ли я их с чем-то спутала, то ли задача странно сформулированна.

Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 14 нояб. 2005 22:16 | IP
VF



Administrator

ФИБОНАЧЧИ ЧИСЛА - элементы числовой последовательности 1, 1, 2, 3, 5, 8,... (ряда Фибоначчи, Fibonacci; 1202), в которых каждый последующий член равен сумме двух предыдущих.

Всего сообщений: 3110 | Присоединился: май 2002 | Отправлено: 14 нояб. 2005 22:44 | IP
miss_graffiti


Долгожитель

значит, не перепутала.
тогда- в чем проблема?
if a[n]=a[n-1]+a[n-2] then S:=S+1

а для второй:
min:=a[1]+a[n];
for i:=2 to n do
begin
if a{{i}}+a[n+1-i]<min
then min:=a{{i}}+a[n+1-i];

*хотя что-то у меня сомнения, что правильно условие поняла.

Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 15 нояб. 2005 13:50 | IP
Dzen


Удален

Для первой
...
var
Data:array [1..n] of integer;
a_n,a_n1:integer;{Два последовательных члена ряда}
c:integer;{Вспомогательная переменная}
Stop:boolean;
...
a_n:=0;a_n1:=1;
while Stop do
  begin
  c:=a_n1;
  a_n1:=a_n+a_n1;
  a_n:=c;
  Stop:=false;
  for j:=1 t n do
      begin
      if Data[j]=a_n+1 then S:=S+1;
      if Data[j]>then Stop:=true;
      end;
  end;

Чуствуете принципиальную разницу между тем что делает 1 программа и эта?
Гораздо более эффективным алгоритм можно сделать если данные находятся в списке. 


       

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 15 нояб. 2005 15:59 | IP
miss_graffiti


Долгожитель

и в чем принципиальное отличие? (положительное, разумеется. длину кода и количество переменных я и так могу оценить).

Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 15 нояб. 2005 16:13 | IP
Dzen


Удален

Различие в том что твой алгоритм определяет сколько в массиве последовательных пар чисел Фибоначчи, а  не сколько там чисел Фибоначи.

элементы числовой последовательности 1, 1, 2, 3, 5, 8

Некоторые числа входят в эту последовательность, а некоторые - нет
Например 4 это не число Фибоначчи, а 5 - да.
Таким образом в массиве 5,20,1,34,2,13,4,21
шесть чисел Фибоначчи (все кроме 20 и 4 )
Сколько их насчитает твой алгоритм?

Р.S. Извиняюсь за корявость своей программы - просто написал самый грубый вариант который считает то что нужно. Конечно же массив перед поиском надо упорядочить по возрастанию и сам алгоритм сделать так чтобы при возрастании a_n соотв. повышалась нижняя граница j.


Всего сообщений: N/A | Присоединился: N/A | Отправлено: 16 нояб. 2005 13:39 | IP
miss_graffiti


Долгожитель

ага. значит, я задание не поняла.
думала, что число Фибоначчи по условию - это именно то число, которое равно сумме двух предыдущих в данной последовательности.
мой алгоритм ищет именно такие числа...

Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 16 нояб. 2005 19:10 | IP

Отправка ответа:
Имя пользователя   Вы зарегистрировались?
Пароль   Забыли пароль?
Сообщение

Использование HTML запрещено

Использование IkonCode разрешено

Смайлики разрешены

Опции отправки

Добавить подпись?
Получать ответы по e-mail?
Разрешить смайлики в этом сообщении?
Просмотреть сообщение перед отправкой? Да   Нет
 

Переход к теме
<< Назад Вперед >>
Одна страница

Форум работает на скрипте © Ikonboard.com