Форум программистов, компьютерный форум CyberForum.ru

Генератор случайных чисел - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.83
OVERPOWER8
 Аватар для OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
04.01.2010, 23:22     Генератор случайных чисел #1
Вот написал программу, которая генерирует матрицу 9*9.
В каждой строке - от 1 до 9, не повторяются
В каждом стобце - то же самое.

Однако программа работет не совсем так, как надо - числа с строках и столбцах повторяются.

Подскажите, что неправильно?

Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
    srand(time(0));
    int sudoku[9][9];
    
    int number;
    int i, j, k, l;
    
    bool repeated;
        
    for(i=0; i<9; i++)
    {
        for(j=0; j<9; j++)
        {
            for(;;)
            {
                number=rand()%9+1;
                repeated=false;
                
                for(l=0; l<i; l++)
                {
                    if(number==sudoku[l][j])
                    {
                        repeated=true;
                        continue;
                    }
                }
                
                for(k=0; k<j; k++)
                {
                    if(number==sudoku[i][k])
                    {
                        repeated=true;
                        continue;
                    }
                }
                
                sudoku[i][j]=number;
                break;
            }
        }
    }
Вот, что выводит программа:

6 8 8 6 6 3 6 7 3
2 9 9 1 5 3 5 5 5
1 5 6 8 1 5 8 9 1
2 8 8 6 3 6 3 8 1
3 2 7 5 4 4 4 4 9
5 9 2 9 7 4 3 5 3
5 1 2 4 1 8 2 6 1
6 6 8 6 8 8 3 2 2
6 5 5 3 7 2 3 5 9

Пытаюсь сделать судоку на С++, на на этой части что-то заклинило...

Добавлено через 2 часа 35 минут
Немного переделал.

Теперь работает-то правильно, однако комп почему-то зависает...

вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    time_t kl;
    srand(kl);
    const int size=9;
    int number;
    int sudoku[size][size];
    int i, j;
    int k, l;
    
    bool repeated;
    
    for(i=0; i<size; i++)
    {
        for(j=0; j<size; j++)
        {
            for(;;)
            {
                repeated=false;
                number=rand()%9+1;
                
                for(l=0; l<i; l++)
                    if(sudoku[l][j]==number)
                    {
                        repeated=true;
                        break;
                    }
                for(k=0; k<j; k++)
                    if(sudoku[i][k]==number)
                    {
                        repeated=true;
                        break;
                    }
                
                if(repeated==true)
                    continue;
                    
                sudoku[i][j]=number;
                break;
            }
            cout << sudoku[i][j] << " ";
        }
        cout << endl;
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2010, 23:22     Генератор случайных чисел
Посмотрите здесь:

C++ Генератор случайных чисел
C++ Генератор случайных чисел
C++ Генератор случайных чисел
C++ генератор случайных чисел
Генератор случайных чисел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XuTPbIu_MuHTAu
Эксперт C++
 Аватар для XuTPbIu_MuHTAu
2218 / 733 / 10
Регистрация: 27.05.2008
Сообщений: 1,507
05.01.2010, 20:22     Генератор случайных чисел #2
http://www.cyberforum.ru/cpp-beginners/thread44753.html
OVERPOWER8
 Аватар для OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
05.01.2010, 21:31  [ТС]     Генератор случайных чисел #3
>> XuTPbIu_MuHTAu
И ЧТО!?

Где в том посте, на который вы указали, хоть какая-то связь с моим??
XuTPbIu_MuHTAu
Эксперт C++
 Аватар для XuTPbIu_MuHTAu
2218 / 733 / 10
Регистрация: 27.05.2008
Сообщений: 1,507
05.01.2010, 21:38     Генератор случайных чисел #4
Ой,я думал это в прикрепленной ответ.

Связь прямая. Быстрый алгоритм генерации случайных чисел там описан.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
06.01.2010, 12:00     Генератор случайных чисел #5
Судоку! вот вам ответ
Yandex
Объявления
06.01.2010, 12:00     Генератор случайных чисел
Ответ Создать тему
Опции темы

Текущее время: 18:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru