Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Помогите реализовать !


Автор: kb64 22.11.2008, 16:15
Я в принципе даже не знаю как тему обозвать. Уже который день у меня не получается реализовать следующий алгоритм:
есть матрица mA (нумерация эл-ов от 0 до n), заполнена от 1 до ...
1   2   3   4   5
6   7   8   9   10
11 12 13 14 15
... и т. д.

далее делаю следущее...
Код

int getRandom(int rand_count){
    int ii;
    int jj;
    srand((unsigned)time(NULL));
    for(int i = 0; i < pop_num; i++){
        for(int j = 0; j < n; j++){
            ii = rand()%rand_count;
            jj = rand()%rand_count;
            ch[i][j] = mA[ii][jj];
            
        }
    }
    return rand_count;
}


Т. Е. в матрицу ch[][] записываю рандомный элемент из матрицы mA[][]... Вот дальше я и встал в ступор. Мне нужно сделать следущее, если в строчке матрицы ch[][] есть 2 (или больше) одинаковых элемента, тогда на место этой строчке прогнать еще раз цикл рандома, при этом мне нужно сраынивать не по содержанию матрицы а по числам 'i' и 'j'.
Может я запутано написал, сейчас наглядно попробую "накалякать" =)

случился рандом, предположим, что у нас строка ch[0][j] будет росвна

-> 22   28   22   11  1 10

есть 1 повторяющийся эл-т "22".
Мне нужно сделать проверку на повторение НЕ ПО СОДЕРЖАНИЮ, т.е.

по числу i и j
(предположим та же строчка, но по индексам матрицы)

-> [0][1]   [1][4]   [0][1]   [4][5]   [7][4]

вот по индексам мне и нужно проверять, как это сделать, что-то я незнаю.
Думал сделать 3мерную марицу, куда буду класть элементы... Посоветуйте путь по-легче плз... Спасибо. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)