Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вычисление индекса... Работа с массивом.... 
:(
    Опции темы
Maverick
Дата 5.4.2004, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1307
Регистрация: 22.9.2003
Где: Odessa, Ukraine

Репутация: 2
Всего: 10



Доброе время суток....

Есть такое дело....

Есть у меня ряд чисел 1,2,3,4,5,6,7,8,9.
Это естессно индексы массива....
Итак, мне надо получить по индексу элемента массива - номер элемента с которым надо сравниться....

1 -> 7
2 -> 8
3 -> 9

4 -> 7
5 -> 8
6 -> 9

Шаг известен.... Задачу я упростил, конечно, в общем виде сложнее....
Как получить эту замечательную зависимость?

То есть там видно, что через 3 элемента сравнивается....

Что-то типа функции
f(1 - засылаемый индекс) = 7
f(4) = опять-таки 7

Все хожу вокруг да около..... А придумать не получается....
Посоветуйте чего-нибудь... может стандартное что есть? div пробовал, что-то не то с ним.....


--------------------
smile
PM ICQ GTalk   Вверх
x77
Дата 5.4.2004, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: 19
Всего: 22



нифига я не понял.... что, элементы повторяются?
т.е.
Код

индексы   123456789
элементы  789789789


так, что ли?

если да, то.

1. насчёт функции y = f(x) - всё правильно. только надо было брать не div, а mod - тебе же, по сути, остаток нужен?

2. период у тебя 4, значит надо брать x mod 4. и прибавлять 1, т.к. у тебя индексация начинается с нуля.

3. надо учитывать, что когда у тебя x < 4, x mod 4 даст x. чтоб такого не было, надо x делать заведомо больше четырёх. путём прибавления к нему 3 (твой шаг между повторяющимися элементами). на результате это не скажется, т.к. остаток от деления будет тем же.

в конечном итоге имеем: (x + 3) mod 4 + 1;

4. таким образом любой индекс будет сведён к первым трём. останется получить значение элемента по этому индексу:

f := Mas [(x + 3) mod 4 + 1];

меняя шаг (3) и период (4), можно свести любую повторяющуюся последовательность к первым её неповторяющимся элементам.


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
Maverick
Дата 5.4.2004, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1307
Регистрация: 22.9.2003
Где: Odessa, Ukraine

Репутация: 2
Всего: 10



Цитата
2. период у тебя 4, значит надо брать x mod 4. и прибавлять 1, т.к. у тебя индексация начинается с нуля.


Почему 4? 3? Индексация с единицы идет.....

Цитата
нифига я не понял.... что, элементы повторяются?
т.е.

Код

индексы  123456789
элементы 789789789


Об самих элементах речь не идет..... Только индексы.... Массив линейный....

Цитата
f := Mas [(x + 3) mod 4 + 1];

Вот это где-то близко.... Копаю, спасибо.... Истина где-то рядом....


--------------------
smile
PM ICQ GTalk   Вверх
x77
Дата 5.4.2004, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: 19
Всего: 22



Maverick, извини меня, дурака, просто в твоём изложении я задачу не понял. ты объясни толком, что нужно? smile.gif

мой код позволит получить то, что ты привёл в примере. через каждые три индекса значения начинают повторяться.


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
Maverick
Дата 5.4.2004, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1307
Регистрация: 22.9.2003
Где: Odessa, Ukraine

Репутация: 2
Всего: 10



Цитата
Maverick, извини меня, дурака, просто в твоём изложении я задачу не понял. ты объясни толком, что нужно?


Сорри за изложение... устал, наверно.....

Значит, я пытался упростить.... Даю полное изложение....

Есть таблица на самом деле - вот такая....

1 2 3 4 5 6 7 8 9 - это индексы

5 10 15 0 0 0 0 0 0 - это значения....
7 77 77 8 9 11 0 0 0
7 5 5 5 7 9 7 3 2

Ну примените фантазию.... Таблица не очень ровная получилась... Но вообще-то она 3х9...
Жирные элементы ключевые.... Курсивные элементы зависимые....
Мне необходимо сравнить курсивные с жирными....

Например в третьей строке - элемент №1 сравнивается с элементом №7, и элемент №4 тоже с ним..... элемент №2 с элементом №8, элемент №5 с элементом №8.... Повторюсь - это третья строка....

Во второй строке соответственно №1 с №4, №2 с №5....

Толщина так сказать главной диагонали будет зависеть от количества строк.... В этом примере - толщина 3....

Это пример.... таблица всегда произвольная...... Но все элементы справа сравниваются с подобием главной диагонали....
Не уверен, что понятнее получилось.....

Это сообщение отредактировал(а) Maverick - 5.4.2004, 19:46


--------------------
smile
PM ICQ GTalk   Вверх
Maverick
Дата 5.4.2004, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1307
Регистрация: 22.9.2003
Где: Odessa, Ukraine

Репутация: 2
Всего: 10



Решил.... mod применил.... x77, спасибо....


--------------------
smile
PM ICQ GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0437 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.