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

автонахождения магических квадратов - C++

Восстановить пароль Регистрация
 
Ариман
20 / 20 / 1
Регистрация: 18.09.2010
Сообщений: 28
25.03.2011, 16:24     автонахождения магических квадратов #1
Тут собсна проблема он ненаходит ниодного магического кубика ,непойму в чем причина,если убрать автозаполнение и заполнить матрицу единицами то пишет что найден кубик .А если пустить на самотек при значение прокрутки 200000 он ничего ненаходит,помогите найти ошибку.
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
#include<iostream>
#include<cstdlib>
#include<ctime>
#include<algorithm>
using namespace std;
const int size=4;
void stolb_chek(int[][size],int*);
void str_chek(int[][size],int*);
void diag1_chek(int mas[][size],int&);
void diag2_chek(int mas[][size],int&);
////////////////////////////////////////////
void main ()
{   int count=1;
    int diag1=0,diag2=0;
    int str[size]={0};
    int stolb[size]={0};
    int mas[size][size]={0};
 
    srand(time(NULL));
cout<<"zapolneniye massiva"<<endl;
/////////////////////////////////////
for(int i=0;i<size;i++)
for(int j=0;j<size;j++)
{
mas[i][j]=count;
count++;
}
 
/////////////////////////////////////
for(int k=0;k<2;k++)
{diag1=0,diag2=0;
for(i=0;i<size;i++)
{
str[i]=0;
stolb[i]=0;
}
cout<<" peremeshivaniye massiva"<<endl;
for(i=0;i<10000;i++)
swap(mas[rand()%size][rand()%size],mas[rand()%size][rand()%size]);
for( i=0;i<size;i++)
{
for(int j=0;j<size;j++)
cout<<mas[i][j]<<" ";
cout<<endl;
}
 
str_chek(mas,str);
stolb_chek(mas,stolb);
diag1_chek(mas,diag1);
diag2_chek(mas,diag2);
cout<<"proverka na magiyu"<<endl;
cout<<"1 diag="<<diag1<<" 2diag="<<diag2<<" stroka="<<str[0]<<" stolb="<< stolb[0]<<endl;
 
for( i=0;i<size;i++)
if((str[i]!=stolb[i])||(diag1!=str[i])||(diag2!=str[i])||(diag1!=stolb[i])||(diag2!=stolb[i]))
{
    cout<<"oblomis"<<endl;
break;
}
else
if(i==size-1)
{cout<<"Kubik magicheskiy"<<endl;
for( i=0;i<size;i++)
{
for(int j=0;j<size;j++)
cout<<mas[i][j];
cout<<endl;
}
system("pause");
}
 
}
 
}
////////////////////////////////////
void str_chek(int mas[][size],int*str)
{
    for(int i=0;i<size;i++)
for(int j=0;j<size;j++)
 
str[i]+=mas[i][j];
 
}
////////////////////////////////////////////
 
void stolb_chek(int mas[][size],int*stolb)
{
    for(int i=0;i<size;i++)
        for(int j=0;j<size;j++)
        
            stolb[j]+=mas[i][j];
    
}
////////////////////////////////////////////////
void diag1_chek(int mas[][size],int&diag1)
{
    for(int i=0;i<size;i++)
            diag1+=mas[i][i];
    
}
////////////////////////////////////
void diag2_chek(int mas[][size],int&diag2)
{
 
        for(int j=0,i=size-1;j<size;j++,i--)
            diag2+=mas[i][j];
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2011, 16:24     автонахождения магических квадратов
Посмотрите здесь:

Рисование квадратов символами C++
C++ Криптография. Шифр 4-х квадратов
Фигура из квадратов C++
Сумма квадратов C++
Сумма квадратов ;) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
25.03.2011, 16:39     автонахождения магических квадратов #2
Вот был у меня сокурсник на теории ядра, так тот тоже квадрат с кубом путал.
А у нас там 4,7,11, N измерений.
Однако сокурсник преуспел. Диплом получил. Потом - в школу, учителем. Может, до сих пор путает...

Ну это так, к слову.
Ариман
20 / 20 / 1
Регистрация: 18.09.2010
Сообщений: 28
25.03.2011, 16:43  [ТС]     автонахождения магических квадратов #3
ааааааа ну да )) магический квадрат.....хотя какая разница .
IrineK
Заблокирован
25.03.2011, 16:49     автонахождения магических квадратов #4
и заполнить матрицу единицами
можно также: двойками, тройками ... и т.д. Это - тоже будут магические квадраты.
Или вас такие не устраивают?
Ариман
20 / 20 / 1
Регистрация: 18.09.2010
Сообщений: 28
25.03.2011, 16:51  [ТС]     автонахождения магических квадратов #5
Цитата Сообщение от IrineK Посмотреть сообщение
можно также: двойками, тройками ... и т.д. Это - тоже будут магические квадраты.
Или вас такие не устраивают?
Да 1 или 2 неважно просто скока единиц стока и сумма мне непринципиально было зато проше считать...в принципе он нашел уже ....тему бы удалить....у меня просто терпения нехватило я думал он сразу их находить станет .
Там надо было заполнить его числами ну скажем 3Х3 от 1 до 9 и искать этот магический квадрат. А то так то естествено еси все числа будут одинаковые то и искать ненадо
IrineK
Заблокирован
25.03.2011, 17:15     автонахождения магических квадратов #6
А почему вы уверены, что числа от 1 до 9 образуют магический квадрат 3х3?

Добавлено через 14 минут
Методы построения (конечно же, не перебором):
http://ru.wikipedia.org/wiki/%D0%9C%...80%D0%B0%D1%82
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2011, 18:05     автонахождения магических квадратов
Еще ссылки по теме:

Метод наименьших квадратов C++
Метод наименьших квадратов C++
Сумма квадратов 3-х чисел C++

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

Или воспользуйтесь поиском по форуму:
Ариман
20 / 20 / 1
Регистрация: 18.09.2010
Сообщений: 28
25.03.2011, 18:05  [ТС]     автонахождения магических квадратов #7
Цитата Сообщение от IrineK Посмотреть сообщение
А почему вы уверены, что числа от 1 до 9 образуют магический квадрат 3х3?

Добавлено через 14 минут
Методы построения (конечно же, не перебором):
http://ru.wikipedia.org/wiki/%D0%9C%...80%D0%B0%D1%82
Ну там же написано и пример приведен,как раз числа от 1 до 9. вообше задача у меня была просто на проверку являетца ли введеная матрица магическим квадратом.Плюс у меня изменяя значения size можно менять величину квадрата.Ну лениво мне было руками вводить матрицу а так прога все за меня делает,правда долго с перебором...А по формуле ну там просто набор констант для квадрата заданого размера....недочет в целом но она работает .
А за сылку спс буду шас пробовать по описаным методам .
Yandex
Объявления
25.03.2011, 18:05     автонахождения магических квадратов
Ответ Создать тему
Опции темы

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