Страница: 1 |
Страница: 1 |
Вопрос: помогите с прогой
Добавлено: 15.11.06 23:38
Автор вопроса: 6JIuH | ICQ: 837503
я туплю, так что сорр
значицо
Блин, я туплю
Pole (1 To 9, 1 To 9) // массив 9 на 9
T (1, 2, 3, 4, 5, 6, 7, 8, 9) // стэк
Randomize
' рандомит полностью массив Pole
For k = 1 To 9
' рандомит строчку
For j = 1 To 9
' рандомит Т
For i = 1 To 9
s = Int((9 * Rnd) + 1)
b = T(i)
T(i) = T(s)
T(s) = b
Next i
Pole(j, k) = T(j)
Next j
Next k
программа случайным образом заполняет массив 9*9
нужно чтоб в каждой строке цифры не повторялись, т.е чтоб были 123456789 случайным образом перемешанные в каждой строке
иль свой вариант, плззззз срочна нада
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Шпион
ICQ: 250543104
Вопросов: 13
Ответов: 118
Профиль | | #1
Добавлено: 16.11.06 06:42
че-то я не очень тех. задание понял
Номер ответа: 2
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #2
Добавлено: 16.11.06 21:00
Генери не рандомную последовательность, а перестановку. Статья про генерацию перестановок есть на этом сайте.
Пример получения перестановки по ее номеру:
using namespace std;
int fact(int n){
int res = n ? n : 1;
for(int i = 2; i < n; i++) res *= i;
return res;
}
int main(){
int i, j, r;
int n = 6, m;
for(int cm = 0; cm < fact(n); cm++){
m = cm;
int *a = new int [n]; // Использованные числа
for(i = 0; i < n; i++) a[i] = 0;
for(i = n; i > 0; i--){
int k = m / fact(i-1);
for(j = 0, r = 0; j < n; j++){
if(!a[j] r++;
if(r == k + 1) break;
}
a[j] = 1;
cout << j + 1 << " ";
m %= fact(i-1);
}
delete [] a;
cout << endl;
}
return 0;
}
Номер ответа: 3
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #3
Добавлено: 16.11.06 22:57
Номер ответа: 4
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #4
Добавлено: 17.11.06 12:49
может, T(1 to 9) ??
Номер ответа: 5
Автор ответа:
6JIuH
ICQ: 837503
Вопросов: 1
Ответов: 1
Профиль | | #5
Добавлено: 22.11.06 01:25
всем спасибо фсе сделал