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

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

Войти
Регистрация
Восстановить пароль
 
Ариман
20 / 20 / 1
Регистрация: 18.09.2010
Сообщений: 28
#1

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

25.03.2011, 16:24. Просмотров 545. Ответов 6
Метки нет (Все метки)

Тут собсна проблема он ненаходит ниодного магического кубика ,непойму в чем причина,если убрать автозаполнение и заполнить матрицу единицами то пишет что найден кубик .А если пустить на самотек при значение прокрутки 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];
    
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2011, 16:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Автонахождение магических квадратов (C++):

Метод Рауз-Болла построения магических квадратов N-ого порядка - C++
Здравствуйте! Занялся проблемой построения всех возможных магических квадратов N-ого порядка. Пока работаю над N = 3 и N = 4. Для N = 3 -...

Подсчитать сумму квадратов четных и сумму квадратов нечетных элементов массива - C++
Сформировать в программе массив из целых чисел от 2 до N. Подсчитать сумму квадpатов четных и сумму квадратов нечетных чисел.

Подсчитать сумму квадратов четных и сумму квадратов нечетных чисел - C++
1. Дан массив A размера N. Вывести его элементы в следующем порядке: A1, AN, A2, AN–1, A3, AN–2, … . #include&lt;iostream.h&gt; void...

Генератор магических квадратов - C (СИ)
По лабе задали написать программу которая выводит магический квадрат со стороной n, заполненный числами 1..n^2. Подкиньте идею как...

Шифрование методом магических квадратов - Pascal ABC
Нужно зашифровать текст, например ПРИЛЕТАЮ ВОСЬМОГО. Помогите пожалуйста очень нужно.

Количество существующих нормальных магических квадратов n x n - Комбинаторика
определения используемых терминов см. здесь вопрос -- существует ли формула V (n) = f (n) для нормальных магических квадратов n х n,...

6
IrineK
Заблокирован
25.03.2011, 16:39 #2
Вот был у меня сокурсник на теории ядра, так тот тоже квадрат с кубом путал.
А у нас там 4,7,11, N измерений.
Однако сокурсник преуспел. Диплом получил. Потом - в школу, учителем. Может, до сих пор путает...

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

Добавлено через 14 минут
Методы построения (конечно же, не перебором):
http://ru.wikipedia.org/wiki/%D0%9C%...80%D0%B0%D1%82
0
Ариман
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 можно менять величину квадрата.Ну лениво мне было руками вводить матрицу а так прога все за меня делает,правда долго с перебором...А по формуле ну там просто набор констант для квадрата заданого размера....недочет в целом но она работает .
А за сылку спс буду шас пробовать по описаным методам .
0
25.03.2011, 18:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2011, 18:05
Привет! Вот еще темы с ответами:

Функция считающая количество магических квадратов в матрице - PHP
Помогите, возникли трудности в решении задачи. Дана матрица n*m, нужно написать функцию, которая считает количество магических...

Приложение, которое строит ряд квадратов. Центр квадратов совпадает с центром экрана - C#
Напишите приложение, которое строит ряд квадратов. Центр квадратов совпадает с центром экрана. Число квадратов задается при первом ...

Подпрограммы. Найти пять чисел, чтобы сумма квадратов наибольших равнялась сумме квадратов трех остальных - Pascal ABC
Попытайтесь найти пять идущих подряд целых чисел, таких, чтобы сумма квадратов двух наибольших из них равнялась сумме квадратов трех...

Есть ли четыре последовательных числа, сумма квадратов которых равна сумме квадратов трёх следующих чисел. - Visual Basic
Определить, существуют ли такие четыре последовательных натуральных числа, сумма квадратов которых равна сумме квадратов трёх следующих...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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