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

Генерация ПСП - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Движение объекта, управление стрелками. Перестает работать при нажатии любой клавиши http://www.cyberforum.ru/cpp-beginners/thread32438.html
Здравствуйте. Пишу игру в танчики. Borland C++ 3.1 1. Сейчас реализовал само движение объекта с помощью стрелок. Проблема в том, что когда я жму на одну из клавиш управления (влево например), объект перемещается нормально. Но как только я нажму любую клавишу на клавиатуре, то движение прекращается. Не могу понять в чем проблема и как исправить. 2. При начале движения, первый шаг рисуется...
C++ Игра "Угадай число" Пожайлуста, решите задачу на С++ с условием:написать программу, которая "задумывает" число в диапазоне от 1 до 10 и предлагает пользователю угадать число за 5 попыток. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом). Игра "Угадай число". Компьютер "задумал" число от 1 до 10. Угадайте его за 5 попыток.... http://www.cyberforum.ru/cpp-beginners/thread32433.html
C++ Не могу посчитать единички в массиве
Пожалуйста, помогите посчитать сколько раз подряд появляются единички в массиве, в котором только 1 и 0. Например: 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1. Мне нужно чтобы было посчитано: 2 раза по 3 и 2 раза по 2. А я могу только посчитать количество единичек всего: # include <stdio.h> # include <conio.h> # define N 15 void main () { clrscr (); int arr ={0}, i, count=0;
Совместное использование классов C++
Здравствуйте, возник такой вопрос, как следует писать код, чтобы 2 не зависимых класса могли использовать друг друга? Вот к примеру код #include <iostream.h> #include "2.h" #include "1.h" int main() { one o;
C++ Бинарные файлы.. http://www.cyberforum.ru/cpp-beginners/thread32411.html
Доброго времени суток, господа! Возникла проблемка с открытием бинарного файла: char stroka; fstream bin_file; while (1) { cout << "Binarnie zapisi 1.0\nVvedi adress binfaila\n"; cin.getline(stroka, 100); if (cin.fail())
C++ Структуры(подскажите, что не правильно). Сведения об экзамене содержат следующие данные: дисциплину (программирование, вычислительная техника, информатика), дату сдачи экзамена (год, месяц, день), сведения о студенте (факультет, курс, группа, номер в журнале) и экзаменационную оценку. Задан набор сведений об экзаменах, сданных студентами за последние несколько лет; в них факультет и предмет кодируются первыми буквами названия.... подробнее

Показать сообщение отдельно
S.l.a.y.e.R
0 / 0 / 0
Регистрация: 02.05.2009
Сообщений: 10

Генерация ПСП - C++

02.05.2009, 21:56. Просмотров 784. Ответов 4
Метки (Все метки)

Пожалуста, помогите. Задача состоит в том чтобы написать на С++ генератор псевдослучайных последовательностей по формуле:
Y[i+1]=F*Y[i],
где F - матрица(любая невырожденная), Y - вектора.
Все вычисления должны быть по модулю 5 (элементы матрицы и векторов соответственно тоже - 0 1 2 3 4 ).
Нужно написать программу, которая реализует это умножение, причем циклическое, т.е. вектор-результат еще раз умножится на ту же матрицу и получится следующий вектор и т. д. Также нужно чтобы вычислялся период т.е. когда вектора-результаты начнут повторяться. И еще прорамма должна позволять выводить результат задаваемого умножения т.е. например результат после 15-го умножения (1 результат) или результат с 10-го до 16-го умножения (7 результатов).
Я пока только написал достаточно дилетантскую программу, которая только считает результат 1-го умножения. Вот она:

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
 
int main(void) {
int c1;
int i, j, k;
randomize();
printf("vvedite rang matrici(2, 3 ili 4) - n: \n");
scanf("%d",&c1);
    switch(c1) {
 
case 2:
int S2=2;
int A2[2][2];
int B2[2][1];
int C2[2][1];
for(j=0; j<S2; j++){
for(k=0; k<1; k++){
B2[j][k]=random(5);}}
 
for(i=0; i<S2; i++){
for(j=0; j<S2; j++){
A2[i][j]=random(5);}}
printf("matica F: \n");
for(i=0; i<S2; i++){
for(j=0; j<S2; j++){
printf("%3d ",A2[i][j]);}
   printf("\n");
   printf("\n");}
 
    printf("\n");
printf("vector Y[i]: \n");
for(j=0; j<S2; j++){
for(k=0; k<1; k++){
printf("%3d ",B2[j][k]);}
   printf("\n");
   printf("\n");}
 
   printf("\n");
 
for(i=0; i<S2; i++){
for(k=0; k<1; k++){
C2[i][k]=0;
for(j=0; j<S2; j++){
C2[i][k]=(C2[i][j]+(A2[i][j]*B2[j][k])%5)%5;}}}
printf("vector Y[i+1]=F*Y[i]: \n");
for(i=0; i<S2; i++){
for(k=0; k<1; k++){
printf("%3d ",C2[i][k]);}
printf("\n");
printf("\n");}
break;
 
case 3:
int S3=3;
int A3[3][3];
int B3[3][1];
int C3[3][1];
for(j=0; j<S3; j++){
for(k=0; k<1; k++){
B3[j][k]=random(5);}}
 
for(i=0; i<S3; i++){
for(j=0; j<S3; j++){
A3[i][j]=random(5);}}
printf("matica F: \n");
for(i=0; i<S3; i++){
for(j=0; j<S3; j++){
printf("%3d ",A3[i][j]);}
   printf("\n");
   printf("\n");}
 
    printf("\n");
printf("vector Y[i]: \n");
for(j=0; j<S3; j++){
for(k=0; k<1; k++){
printf("%3d ",B3[j][k]);}
   printf("\n");
   printf("\n");}
 
   printf("\n");
 
for(i=0; i<S3; i++){
for(k=0; k<1; k++){
C3[i][k]=0;
for(j=0; j<S3; j++){
C3[i][k]=(C3[i][j]+(A3[i][j]*B3[j][k])%5)%5;}}}
printf("vector Y[i+1]=F*Y[i]: \n");
for(i=0; i<S3; i++){
for(k=0; k<1; k++){
printf("%3d ",C3[i][k]);}
printf("\n");
printf("\n");}
break;
    
case 4:
int S4=4;
int A4[4][4];
int B4[4][1];
int C4[4][1];
for(j=0; j<S4; j++){
for(k=0; k<1; k++){
B4[j][k]=random(5);}}
 
for(i=0; i<S4; i++){
for(j=0; j<S4; j++){
A4[i][j]=random(5);}}
printf("matica F: \n");
for(i=0; i<S4; i++){
for(j=0; j<S4; j++){
printf("%3d ",A4[i][j]);}
   printf("\n");
   printf("\n");}
 
    printf("\n");
printf("vector Y[i]: \n");
for(j=0; j<S4; j++){
for(k=0; k<1; k++){
printf("%3d ",B4[j][k]);}
   printf("\n");
   printf("\n");}
 
   printf("\n");
 
for(i=0; i<S4; i++){
for(k=0; k<1; k++){
C4[i][k]=0;
for(j=0; j<S4; j++){
C4[i][k]=(C4[i][j]+(A4[i][j]*B4[j][k])%5)%5;}}}
printf("vector Y[i+1]=F*Y[i]: \n");
for(i=0; i<S4; i++){
for(k=0; k<1; k++){
printf("%3d ",C4[i][k]);}
printf("\n");
printf("\n");}
break;
    //return 0;
}   return 0;}
Программа достаточно кривая, но она у меня работает. Я не знаю как задать чтоб умножало дальше и выводило только требуемые результаты(задаются с клавиатуры по запросу программы). Ранг матрицы - 2х2, 3х3, 4х4(также задаётся с клавиатуры по запросу программы). Больше не нужно.
Буду рад любой помощи. Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru