powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Надежность алгоритма.
25 сообщений из 26, страница 1 из 2
Надежность алгоритма.
    #38366888
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот есть алгоритм:
Для каждого элемента из массива A[10,10] найти соответствующий ему в строке B[100];
Решение в лоб -> сравнение для каждого элемента столбца в каждой строке массива А с элементом из строки B.
Как доказать, что этот алгоритм всегда сработает? Или если пойти от "противного", какой возможен случай ошибки этого алгоритма.
-------------------
Да и вообще, для такой задачи, есть что-нибудь получше чем FullScan(FullSort, или как вам удобно)
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38366904
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaaКак доказать, что этот алгоритм всегда сработает?В общем случае - никак.
По этому обычно используют test cases.
Но если возможно, то индуктивное доказательство будет наилучшим решением.
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38366906
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaaВот есть алгоритм:
Для каждого элемента из массива A[10,10] найти соответствующий ему в строке B[100];
Решение в лоб -> сравнение для каждого элемента столбца в каждой строке массива А с элементом из строки B.
Как доказать, что этот алгоритм всегда сработает? Или если пойти от "противного", какой возможен случай ошибки этого алгоритма.
-------------------
Да и вообще, для такой задачи, есть что-нибудь получше чем FullScan(FullSort, или как вам удобно)
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38366938
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaaКак доказать, что этот алгоритм всегда сработает? Или если пойти от "противного", какой возможен случай ошибки этого алгоритма.
В массиве есть повторяющиеся элементы, и не всем им хватает копий в векторе.

Если в массиве нет повторяющихся элементов - алгоритм гарантированно работает. Если есть - необходимо исключать из вектора элементы, которые уже получили соответствия. В этом случае алгоритм также гарантированно работает.
eldarkaa для такой задачи, есть что-нибудь получше чем FullScan(FullSort, или как вам удобно)
Предварительная сортировка обеих массивов и затем параллельное сравнение. Сложность = сложности используемого метода сортировки.
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38366967
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaaКак доказать, что этот алгоритм всегда сработает?

Глуповатый какой-то вопрос...

eldarkaaИли если пойти от "противного", какой возможен случай ошибки этого алгоритма.

Что такое ошибка алгоритма? Элемент не найден это ошибка или один из вариантов работы алгоритма?


eldarkaaДа и вообще, для такой задачи, есть что-нибудь получше чем FullScan(FullSort, или как вам удобно)

да, разумеется есть
Код: plaintext
1.
getItem(int x, int y){ return flip(B)[A[x][y]]; } 
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367070
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix, что же Вы себя утруждаете, не нравиться вопрос - проходите мимо!
Лучше бы словами сказали какой алгоритм/метод получше для данной задачи.
Akina Предварительная сортировка обеих массивов и затем параллельное сравнение. Тут подразумевается многопоточность или просто сравнение?
Массивы отсортирован(он в форме треугольника, строчки с меньшими элементами первые) и там нет одинаковых значений для каждой строчки. После совпадения элементов, я их удаляю(они "уникальны") из строки массива и вектора, так как возможны другие совпадение таких же элементов в следующих строках.
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367093
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaaДля каждого элемента из массива A[10,10] найти соответствующий ему в строке B[100];
Решение в лоб -> сравнение для каждого элемента столбца в каждой строке массива А с элементом из строки B.гм.
У меня другое решение "в лоб".
если x,y - индексы массива А, а z-индекс массива B, то
между ними есть взаимно-однозначное соответствие 10*(x-1)+y=z
т.е. по x,y можно найти z, и по z можно найти x,y.
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367134
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaaТут подразумевается многопоточность или просто сравнение?
Мы обсуждаем алгоритм, а многопоточность - это уже реализация.
Не, просто "сравнить следующий из массива и следующий из вектора". А линеаризация массива в вектор (и при сортировке, кстати) - в точности как пишет S.G. .

А вот "массив в форме треугольника" - это, право слово, загадка...
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367149
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S.G.eldarkaaДля каждого элемента из массива A[10,10] найти соответствующий ему в строке B[100];
Решение в лоб -> сравнение для каждого элемента столбца в каждой строке массива А с элементом из строки B.гм.
У меня другое решение "в лоб".
если x,y - индексы массива А, а z-индекс массива B, то
между ними есть взаимно-однозначное соответствие 10*(x-1)+y=z
т.е. по x,y можно найти z, и по z можно найти x,y.

Если мне не изменяет память, если писать на С,
то к массиву A[10,10] через указатель можно обращаться как к массиву A[100].

Задача своидтся к сравнению элементов 2-х массивов одниковой размерности.
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367230
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не думал, что дальше тема зайдет. У меня просто не Массив, а Список списков A.
Просто думал, что так наглядней будет в качестве примера.
Словами "в форме треугольника" хотел показать, что будут и отсутствующие элементы.
Массив плох тем, что с ним нельзя работать. Добавлять/изменять/удалять. В моем случае я могу использовать списки или множества.
S.G.если x,y - индексы массива А, а z-индекс массива B, то
между ними есть взаимно-однозначное соответствие 10*(x-1)+y=z
т.е. по x,y можно найти z, и по z можно найти x,y.
Уж простите, но не очень понятно как это реализовать для списков.
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367245
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
AkinaПредварительная сортировка обеих массивов и затем параллельное сравнение. Сложность = сложности используемого метода сортировки.Можно отсортировать только второй массив, потом использовать двоичный поиск для каждого элемента из первого. Сложность такая же.
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367252
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaaLumix, что же Вы себя утруждаете, не нравиться вопрос - проходите мимо!

При чем тут нравится / не нравится?

eldarkaaЛучше бы словами сказали какой алгоритм/метод получше для данной задачи.

Слепой что ли?!!! Я уже дал готовый кусок кода в качестве решения задачи!!!
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367261
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaa,

а что содержится в (а) и (в)
каков тип данных
одинаковый или потребуется преобразование
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367279
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaaЯ не думал, что дальше тема зайдет. У меня просто не Массив, а Список списков A.
Просто думал, что так наглядней будет в качестве примера.
Словами "в форме треугольника" хотел показать, что будут и отсутствующие элементы.
Массив плох тем, что с ним нельзя работать. Добавлять/изменять/удалять. В моем случае я могу использовать списки или множества.
S.G.если x,y - индексы массива А, а z-индекс массива B, то
между ними есть взаимно-однозначное соответствие 10*(x-1)+y=z
т.е. по x,y можно найти z, и по z можно найти x,y.
Уж простите, но не очень понятно как это реализовать для списков.

Можно работать с массивом по всем пунктам которые вы считаете невозможными.
Вопрос цены ресурсов.
Если у вас элементов будет не более 100 то массив может оказаться быстрее потому,
что полоностью влезет в кеш процессора.
А список как цепочка указателей вероятнее всего нет и обращение
будет происходит с скоростью работы с оперативной памятью .
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367282
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот весь код(результат и цели от примера)
http://www.sql.ru/forum/1041305/refaktoring
В этом разделе я хотел поднять вопрос только о том, как показать, что алгоритм выполняется правильно или нет. Что не произойдет не предвиденных ошибок.
Только WhiteOwl ответил по теме.
WhiteOwlВ общем случае - никак.
По этому обычно используют test cases.
Но если возможно, то индуктивное доказательство будет наилучшим решением.
Все остальные перекинулись на алгоритм. Алгоритм это 2ая часть вопроса, но тут уже вылезают подробности реализации и думаю, надо прекратить обсуждать здесь, а то и дальше будут присылать геттеры с непонятной функцией
Мастер мыслиgetItem(int x, int y){ return flip(B)[A[x][y]]; }
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367288
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР, говорят Список списков будет [2000+][10], но это тоже не комильфо, учитывая что в каждой строчке значения уникальные, но они могу повторяться в разных строчках..... если будет время, загляните в другой топик, тут заканчиваем.
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367295
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaaвот весь код(результат и цели от примера)
http://www.sql.ru/forum/1041305/refaktoring
[/quot]

Можете не обращать внимание на 14712076

Я не не в курсе что и как там работает в Джаве.
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367297
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaaДохтаР, говорят Список списков будет [2000+][10], но это тоже не комильфо, учитывая что в каждой строчке значения уникальные, но они могу повторяться в разных строчках..... если будет время, загляните в другой топик, тут заканчиваем.


Извините , Я не спец по джаве и не планирую им становится.
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367302
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я использовал треугольные массивы для "матриц смежностей" в графах
и для "треугольника паскаля". Если я правильно улавливаю сам термин
конечно.
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367452
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?AkinaПредварительная сортировка обеих массивов и затем параллельное сравнение. Сложность = сложности используемого метода сортировки.Можно отсортировать только второй массив, потом использовать двоичный поиск для каждого элемента из первого. Сложность такая же.Ага... а про то, что
eldarkaaвозможны другие совпадение таких же элементов в следующих строках.т.е. после сортировки - в массиве, забываешь, да?
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367582
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Вы его спутали с треугольной матрицей . Речь идет о треугольном Массиве, у которого строки имеют разное количество элементов(столбцов). Тему хороните! (хватит апать!)
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38367669
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так?
Код: javascript
1.
2.
3.
4.
5.
6.
0 0 0 0 0 0
0 0 0 0 0
0 0 0 0
0 0 0
0 0
0
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38368051
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он самый, пожалуйста, если хотите продолжить беседу переползайте в другой топик. Эту надо похоронить уже.
Да, реализация пишется на Java, но ничто не мешает обсудить сам алгоритм там!
Буду очень благодарен, если есть идеи как обходить такой Массив(Список списков) правильно и быстро.
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38368086
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaa, не говори загадками. Что где? Какой топик? Мне что, перечитать все твои посты с 2012 года?
...
Рейтинг: 0 / 0
Надежность алгоритма.
    #38368113
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytoneldarkaa, не говори загадками. Что где? Какой топик? Мне что, перечитать все твои посты с 2012 года?mayton,
это здесь: eldarkaaвот весь код(результат и цели от примера)
http://www.sql.ru/forum/1041305/refaktoring
В этом разделе я хотел поднять вопрос только о том, как показать, что алгоритм выполняется правильно или нет.
но там оказывается, что данные расположены в XLS-файле, то есть Йексель, (причем тут списки и массивы, непонятно) а далее ТС любезно предлагает всем разобраться в нескольких портянках кода, с кучей циклов.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Надежность алгоритма.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]