Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.53/34: Рейтинг темы: голосов - 34, средняя оценка - 4.53
4 / 4 / 4
Регистрация: 14.09.2012
Сообщений: 64
1

Волновой алгоритм

12.02.2013, 21:34. Показов 6712. Ответов 25
Метки нет (Все метки)

Подскажите пожалуйста, на сколько сложно изготовить из матрицы
C++
1
2
3
0000
0000
0000
напр.
C++
1
2
3
4
4345
3234
2123
3234
Только при помощи обычных циклов.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2013, 21:34
Ответы с готовыми решениями:

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки )
#include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; void lab...

Волновой алгоритм
Здравствуйте, очень прошу помочь с реализацией волнового алгоритма только лишь с помощью матрицы...

Волновой алгоритм
Нужно найти кратчайший путь в лабиринте размерностью 10х10 , и выводить ответ. Помогите

Волновой алгоритм
Нужно реализовать волновой алгоритм поиска кратчайшего пути на поле 20*20, причем координаты начала...

25
75 / 26 / 2
Регистрация: 15.02.2012
Сообщений: 97
12.02.2013, 21:58 2
Понятней формулируй задачу. А то какой вопрос - такой и ответ получишь. Я тоже могу спросить сколько весит розовый слон в нанометрах.
1
4 / 4 / 4
Регистрация: 14.09.2012
Сообщений: 64
12.02.2013, 22:06  [ТС] 3
Собственно уточню есть матрица 0 4x4, ее эл-т а[2][1], присвоить эл-там матрицы значения волновым "способом" как написано в 1м посте. И реализовать это при помощи операторов ветвления и циклов while, for.
0
620 / 474 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
12.02.2013, 22:12 4
Ну в зависимости от вашего опыта и знаний будет зависит сложность.
0
4 / 4 / 4
Регистрация: 14.09.2012
Сообщений: 64
12.02.2013, 22:44  [ТС] 5
C++
1
2
for(j=1;j<4;j++)
a[2][j]=j;
Так же влево, вверх вниз, но как быть с поворотами.
0
620 / 474 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
12.02.2013, 22:53 6
эммм не получится такая штука. Лично судя по этому нет. Тут надо брать элемент, и смотреть соседние, или хранить предыдущий.

Добавлено через 2 минуты
Ну точно не так линейно.
0
1335 / 986 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
12.02.2013, 22:57 7
Цитата Сообщение от Wolkodav Посмотреть сообщение
Ну точно не так линейно.
Да ну?
C++
1
2
3
4
5
int x = 2, y = 1;
 
for (int i = 0; i < 4; i++)
  for (int j = 0; j < 4; j++)
    a[i][j] = abs(i - x) + abs(j - y) + 1;
1
75 / 26 / 2
Регистрация: 15.02.2012
Сообщений: 97
12.02.2013, 23:04 8
Куда же канули те времена, когда мы задумывались об экономии памяти? Да здравствуют полные переборы. Это печально.
0
1335 / 986 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
12.02.2013, 23:10 9
cyberdiem, НЛО прилетело сюда и оставило тут эту запись?
0
620 / 474 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
12.02.2013, 23:11 10
Цитата Сообщение от Valli1 Посмотреть сообщение
Код C++
for(j=1;j<4;j++)
a[2][j]=j;
iama, сравните и ваше, по мне достаточно разные вещи.
0
75 / 26 / 2
Регистрация: 15.02.2012
Сообщений: 97
12.02.2013, 23:14 11
iama, "эту" понятие растяжимое на 8 постов. Вопрос некорректен.
0
1335 / 986 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
12.02.2013, 23:14 12
Wolkodav, вы, похоже, имели в виду, что нужно писать что-то похожее на обход в ширину, разве не так?
0
620 / 474 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
12.02.2013, 23:20 13
iama, примерно
0
1335 / 986 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
12.02.2013, 23:22 14
Wolkodav, а я всего-то хотел сказать, что можно сделать всё много проще и довольно линейно.
1
4 / 4 / 4
Регистрация: 14.09.2012
Сообщений: 64
12.02.2013, 23:28  [ТС] 15
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
#include <iostream>
const int n=4;
void r(int (*a)[4],int n);
int main(){
int a[4][4]={{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};
r(a,n);
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
std::cout<<a[i][j]<<' ';}
std::cout<<'\n';}
system("pause");
return 0;
}
void r(int (*a)[4],int n){
for(int i=2,k=1;i<4;i++){
for(int j=1;j<4;j++){
a[i][j]=k;k++;}k=2;}
for(int i=2,k=1;i<4;i++){
for(int j=1;j>=0;j--){
a[i][j]=k;k++;}k=2;}
for(int i=1,k=2;i>=0;i--){
for(int j=1;j<4;j++){
a[i][j]=k;k++;}k=3;}
for(int i=1,k=2;i>=0;i--){
for(int j=1;j>=0;j--){
a[i][j]=k;k++;}k=3;}
 
}
Для конкретных координат вот так. Но хотелось бы для универсальных.
0
1335 / 986 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
12.02.2013, 23:30 16
Valli1, вы меня, конечно, простите, все мы когда-то начинали, но нельзя же такое людям показывать!
0
4 / 4 / 4
Регистрация: 14.09.2012
Сообщений: 64
12.02.2013, 23:35  [ТС] 17
Wolkodav, а я всего-то хотел сказать, что можно сделать всё много проще и довольно линейно.
Проще мне не надо. Нужно именно волновое заполнение."Мы легких путей не ищем"(с)
Какое такое, что бы вы посоветовали?Я конечно понимаю Вашу иронию Вы бы в 2 строчки решили. Все работает, немного его обобщить можно.
0
1335 / 986 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
12.02.2013, 23:41 18
Valli1, у вас на то, что вы называете "волновым алгоритмом" тоже совершенно непохоже.

Для начала почитайте про обход в ширину, раз именно это вам нужно.
0
4 / 4 / 4
Регистрация: 14.09.2012
Сообщений: 64
12.02.2013, 23:48  [ТС] 19
Цитата Сообщение от iama Посмотреть сообщение
Valli1, у вас на то, что вы называете "волновым алгоритмом" тоже совершенно непохоже.

Для начала почитайте про обход в ширину, раз именно это вам нужно.
Но там vector и прочее, чего я еще не знаю. Наверняка все можно заполнить вообще одной функцией.
0
1335 / 986 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
12.02.2013, 23:49 20
Valli1, для начала нужно уметь писать очередь. Умеете?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2013, 23:49

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Волновой алгоритм
Доброго времени суток, дорогие форумчане. Никак не додумаю волновой алгоритм, помогите, кто чем...

Волновой алгоритм
Скажите почему программа зацикливается. #include&lt;bits/stdc++.h&gt; using namespace std; int a =...

Лабиринт - волновой алгоритм
Помогите пожалуйста. Я написал код, который мне выведет на экран кратчайший путь... Но чего-то не...

Tiled Map и волновой алгоритм
Делаю игру пакман. Нашла, что для привидений хорошо подходит волновой алгоритм. Нашла примеры...

Волновой алгоритм поиска пути
Добрый день. Реализую всем известный алгоритм поиска кратчайшего пути. Но не могу понять одну...

Волновой алгоритм (шахматы, конь)
Всем привет! Пытался написать волновой алгоритм для нахождения кратчайшего пути коня на...


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

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

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