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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.83
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
#1

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

04.01.2010, 23:22. Просмотров 2289. Ответов 4
Метки нет (Все метки)

Вот написал программу, которая генерирует матрицу 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;
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2010, 23:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Генератор случайных чисел (C++):

Генератор случайных чисел - C++
составить генератор случайных чисел, имеющий два члена - границы последовательности. Предоставить метод, который выводит СЧ из диапазона...

Генератор случайных чисел - C++
Здорова господа! Нужно написать свой собственный генератор случайных чисел, такой же примерно как rand. От примерно написал кое...

Генератор случайных чисел - C++
Добрый вечер! Собственно-то тако задание: необходимо правильно задать параметры для ЛКГ и написать функцию, возвращающую случайные числа,...

генератор случайных чисел - C++
как реализовать генератор случайных чисел? чтобы можно было вводить два числа(например 56 и 519), и случайное число генерировалось из...

Генератор случайных чисел - C++
Здравствуйте, для программы мне требуется генератор, который будет задавать рандомно число, но данное число должно быть с определенными...

Генератор случайных чисел - C++
Как написать генератор случайных (пусть и псевдо) чисел, выдающий на выходе целые случайные числа от 1 до 10 и в кол-ве 10-и и без...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
XuTPbIu_MuHTAu
Эксперт С++
2225 / 740 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
05.01.2010, 20:22 #2
http://www.cyberforum.ru/cpp-beginners/thread44753.html
0
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
05.01.2010, 21:31  [ТС] #3
>> XuTPbIu_MuHTAu
И ЧТО!?

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

Связь прямая. Быстрый алгоритм генерации случайных чисел там описан.
0
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
06.01.2010, 12:00 #5
Судоку! вот вам ответ
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2010, 12:00
Привет! Вот еще темы с ответами:

Генератор случайных чисел - C++
Здравствуйте! Кто-нибудь объясните пожалуйста. Вот есть функция rand(). Она возвращает псевдослучайные числа от нуля до RAND_MAX. А можно...

Генератор случайных чисел - C++
Добрый день!У меня есть код #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;cstring&gt; #include &lt;ctime&gt; char randSym() { ...

Генератор случайных чисел - C++
Реализовать генератор случайных числе в диапазоне от нуля до единицы. После генерации случайного числа, записывать 0 или 1 (в соответствии...

Генератор случайных чисел - C++
Всем привет, вот такая задачка. &quot;Датчики случайных чисел можно привлекать при подборе проверочных исходных данных для программ. а) 25...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.01.2010, 12:00
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru