|
|
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
Вот есть алгоритм: Для каждого элемента из массива A[10,10] найти соответствующий ему в строке B[100]; Решение в лоб -> сравнение для каждого элемента столбца в каждой строке массива А с элементом из строки B. Как доказать, что этот алгоритм всегда сработает? Или если пойти от "противного", какой возможен случай ошибки этого алгоритма. ------------------- Да и вообще, для такой задачи, есть что-нибудь получше чем FullScan(FullSort, или как вам удобно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 22:26 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
eldarkaaКак доказать, что этот алгоритм всегда сработает?В общем случае - никак. По этому обычно используют test cases. Но если возможно, то индуктивное доказательство будет наилучшим решением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 22:44 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
eldarkaaВот есть алгоритм: Для каждого элемента из массива A[10,10] найти соответствующий ему в строке B[100]; Решение в лоб -> сравнение для каждого элемента столбца в каждой строке массива А с элементом из строки B. Как доказать, что этот алгоритм всегда сработает? Или если пойти от "противного", какой возможен случай ошибки этого алгоритма. ------------------- Да и вообще, для такой задачи, есть что-нибудь получше чем FullScan(FullSort, или как вам удобно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 22:49 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
eldarkaaКак доказать, что этот алгоритм всегда сработает? Или если пойти от "противного", какой возможен случай ошибки этого алгоритма. В массиве есть повторяющиеся элементы, и не всем им хватает копий в векторе. Если в массиве нет повторяющихся элементов - алгоритм гарантированно работает. Если есть - необходимо исключать из вектора элементы, которые уже получили соответствия. В этом случае алгоритм также гарантированно работает. eldarkaa для такой задачи, есть что-нибудь получше чем FullScan(FullSort, или как вам удобно) Предварительная сортировка обеих массивов и затем параллельное сравнение. Сложность = сложности используемого метода сортировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 23:42 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
eldarkaaКак доказать, что этот алгоритм всегда сработает? Глуповатый какой-то вопрос... eldarkaaИли если пойти от "противного", какой возможен случай ошибки этого алгоритма. Что такое ошибка алгоритма? Элемент не найден это ошибка или один из вариантов работы алгоритма? eldarkaaДа и вообще, для такой задачи, есть что-нибудь получше чем FullScan(FullSort, или как вам удобно) да, разумеется есть Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 00:34 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
Lumix, что же Вы себя утруждаете, не нравиться вопрос - проходите мимо! Лучше бы словами сказали какой алгоритм/метод получше для данной задачи. Akina Предварительная сортировка обеих массивов и затем параллельное сравнение. Тут подразумевается многопоточность или просто сравнение? Массивы отсортирован(он в форме треугольника, строчки с меньшими элементами первые) и там нет одинаковых значений для каждой строчки. После совпадения элементов, я их удаляю(они "уникальны") из строки массива и вектора, так как возможны другие совпадение таких же элементов в следующих строках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 09:36 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
eldarkaaДля каждого элемента из массива A[10,10] найти соответствующий ему в строке B[100]; Решение в лоб -> сравнение для каждого элемента столбца в каждой строке массива А с элементом из строки B.гм. У меня другое решение "в лоб". если x,y - индексы массива А, а z-индекс массива B, то между ними есть взаимно-однозначное соответствие 10*(x-1)+y=z т.е. по x,y можно найти z, и по z можно найти x,y. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 10:04 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
eldarkaaТут подразумевается многопоточность или просто сравнение? Мы обсуждаем алгоритм, а многопоточность - это уже реализация. Не, просто "сравнить следующий из массива и следующий из вектора". А линеаризация массива в вектор (и при сортировке, кстати) - в точности как пишет S.G. . А вот "массив в форме треугольника" - это, право слово, загадка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 10:36 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
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-х массивов одниковой размерности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 10:42 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
Я не думал, что дальше тема зайдет. У меня просто не Массив, а Список списков A. Просто думал, что так наглядней будет в качестве примера. Словами "в форме треугольника" хотел показать, что будут и отсутствующие элементы. Массив плох тем, что с ним нельзя работать. Добавлять/изменять/удалять. В моем случае я могу использовать списки или множества. S.G.если x,y - индексы массива А, а z-индекс массива B, то между ними есть взаимно-однозначное соответствие 10*(x-1)+y=z т.е. по x,y можно найти z, и по z можно найти x,y. Уж простите, но не очень понятно как это реализовать для списков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 11:37 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
AkinaПредварительная сортировка обеих массивов и затем параллельное сравнение. Сложность = сложности используемого метода сортировки.Можно отсортировать только второй массив, потом использовать двоичный поиск для каждого элемента из первого. Сложность такая же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 11:44 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
eldarkaaLumix, что же Вы себя утруждаете, не нравиться вопрос - проходите мимо! При чем тут нравится / не нравится? eldarkaaЛучше бы словами сказали какой алгоритм/метод получше для данной задачи. Слепой что ли?!!! Я уже дал готовый кусок кода в качестве решения задачи!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 11:47 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
eldarkaa, а что содержится в (а) и (в) каков тип данных одинаковый или потребуется преобразование ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 11:52 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
eldarkaaЯ не думал, что дальше тема зайдет. У меня просто не Массив, а Список списков A. Просто думал, что так наглядней будет в качестве примера. Словами "в форме треугольника" хотел показать, что будут и отсутствующие элементы. Массив плох тем, что с ним нельзя работать. Добавлять/изменять/удалять. В моем случае я могу использовать списки или множества. S.G.если x,y - индексы массива А, а z-индекс массива B, то между ними есть взаимно-однозначное соответствие 10*(x-1)+y=z т.е. по x,y можно найти z, и по z можно найти x,y. Уж простите, но не очень понятно как это реализовать для списков. Можно работать с массивом по всем пунктам которые вы считаете невозможными. Вопрос цены ресурсов. Если у вас элементов будет не более 100 то массив может оказаться быстрее потому, что полоностью влезет в кеш процессора. А список как цепочка указателей вероятнее всего нет и обращение будет происходит с скоростью работы с оперативной памятью . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 11:59 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
вот весь код(результат и цели от примера) http://www.sql.ru/forum/1041305/refaktoring В этом разделе я хотел поднять вопрос только о том, как показать, что алгоритм выполняется правильно или нет. Что не произойдет не предвиденных ошибок. Только WhiteOwl ответил по теме. WhiteOwlВ общем случае - никак. По этому обычно используют test cases. Но если возможно, то индуктивное доказательство будет наилучшим решением. Все остальные перекинулись на алгоритм. Алгоритм это 2ая часть вопроса, но тут уже вылезают подробности реализации и думаю, надо прекратить обсуждать здесь, а то и дальше будут присылать геттеры с непонятной функцией Мастер мыслиgetItem(int x, int y){ return flip(B)[A[x][y]]; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 12:01 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
ДохтаР, говорят Список списков будет [2000+][10], но это тоже не комильфо, учитывая что в каждой строчке значения уникальные, но они могу повторяться в разных строчках..... если будет время, загляните в другой топик, тут заканчиваем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 12:03 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
eldarkaaвот весь код(результат и цели от примера) http://www.sql.ru/forum/1041305/refaktoring [/quot] Можете не обращать внимание на 14712076 Я не не в курсе что и как там работает в Джаве. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 12:05 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
eldarkaaДохтаР, говорят Список списков будет [2000+][10], но это тоже не комильфо, учитывая что в каждой строчке значения уникальные, но они могу повторяться в разных строчках..... если будет время, загляните в другой топик, тут заканчиваем. Извините , Я не спец по джаве и не планирую им становится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 12:06 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
Я использовал треугольные массивы для "матриц смежностей" в графах и для "треугольника паскаля". Если я правильно улавливаю сам термин конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 12:09 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
?AkinaПредварительная сортировка обеих массивов и затем параллельное сравнение. Сложность = сложности используемого метода сортировки.Можно отсортировать только второй массив, потом использовать двоичный поиск для каждого элемента из первого. Сложность такая же.Ага... а про то, что eldarkaaвозможны другие совпадение таких же элементов в следующих строках.т.е. после сортировки - в массиве, забываешь, да? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 13:22 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
mayton, Вы его спутали с треугольной матрицей . Речь идет о треугольном Массиве, у которого строки имеют разное количество элементов(столбцов). Тему хороните! (хватит апать!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 14:30 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
Так? Код: javascript 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 15:22 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
он самый, пожалуйста, если хотите продолжить беседу переползайте в другой топик. Эту надо похоронить уже. Да, реализация пишется на Java, но ничто не мешает обсудить сам алгоритм там! Буду очень благодарен, если есть идеи как обходить такой Массив(Список списков) правильно и быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 18:14 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
eldarkaa, не говори загадками. Что где? Какой топик? Мне что, перечитать все твои посты с 2012 года? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 18:36 |
|
||
|
Надежность алгоритма.
|
|||
|---|---|---|---|
|
#18+
maytoneldarkaa, не говори загадками. Что где? Какой топик? Мне что, перечитать все твои посты с 2012 года?mayton, это здесь: eldarkaaвот весь код(результат и цели от примера) http://www.sql.ru/forum/1041305/refaktoring В этом разделе я хотел поднять вопрос только о том, как показать, что алгоритм выполняется правильно или нет. но там оказывается, что данные расположены в XLS-файле, то есть Йексель, (причем тут списки и массивы, непонятно) а далее ТС любезно предлагает всем разобраться в нескольких портянках кода, с кучей циклов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 19:04 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=54&tid=1341704]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
308ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 662ms |

| 0 / 0 |
