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

перебор массива по количеству вариантов событий - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создание контейнер класса http://www.cyberforum.ru/cpp-beginners/thread777165.html
Всем Привет! Возникает несколько вопросов при создании классов: 1) Какой C++ statement использовать, когда программа должна выбрать между несколькими вариантами, кот контролируются значением...
C++ Как связать несколько классов через один общий класс? Здравствуйте. Есть несколько несвязанных классов, каждый из которых хранит указатель на один общий класс (посредник, устанавливается в конструкторе). Этот общий, в свою очередь, хранит указатель на... http://www.cyberforum.ru/cpp-beginners/thread777163.html
C++ Указатель на объект вектор в векторе vector < vector<int>* >*
Дело касается вот чего, есть такая вот незатейлевая вещь. #include <vector> #include <iostream> int main( ) { using namespace std; typedef vector <int> *v1; v1 v;
C++ Массив: Получить новый массив В по следующему правилу: В1=А1+А10
помогите пож-та.Дан массив А(10). Получить новый массив В по следующему правилу: В1=А1+А10 В2=А2+А9 и так далее. Вывести на экран массив В.
C++ Дан массив X(3,3). Найти и напечатать максимальный элемент массива. http://www.cyberforum.ru/cpp-beginners/thread777157.html
помогите пож-та.Дан массив X(3,3). Найти и напечатать максимальный элемент массива. язык С++
C++ Написать функцию, которая возвращает сумму отрицательных элементов одномерного массива. помогите пож-та.Написать функцию, которая возвращает сумму отрицательных элементов одномерного массива. Тип элементов массива – вещественный. язык С++ подробнее

Показать сообщение отдельно
Николай П
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 60

перебор массива по количеству вариантов событий - C++

01.02.2013, 22:43. Просмотров 419. Ответов 1
Метки (Все метки)

Всем доброго времени суток! Ребят, прошу помощи в решении такой задачи или хотя бы в составлении блок-схемы, я логику теряю, получается полнейшая ерунда(((
Задача:

выбирать из каждой строки по одному значению с единицей и получить двумерные массивы вида:
$rez[колонка][строка] = 1;

описание и примеры:

Допустим у нас такая таблица:

№ строки 1 0 2
_____________________________
1 = |__1__|__1__|__0 _|
2 = |__1__|__0__|__0 _|
3 = |__1__|__0__|__0 _|

Данные из этой таблицы внесены в массив таким образом (изображу откуда и куда):

$win[1][1] = 1;
$win[1][0] = 1;
$win[1][2] = 0;
$win[2][1] = 1;
$win[2][0] = 0;
$win[2][2] = 0;
$win[3][0] = 1;
$win[3][1] = 0;
$win[3][2] = 0;


№ строки 1 0 2
________________________________________________
1 = |__$win[1][1]__|__$win[1][0]__|__0 _|
2 = |__$win[2][1]__|_______0______|__0 _|
3 = |__$win[3][1]__|_______0______|__0 _|

т.е., значения всех ячеек внесены в массив:
$win[строка][колонка] = значение;
и первая строка, хоть и содержит 1 в двух колонках, внесена тоже. Это общий массив со всеми данными из таблицы.
Получается что в этой таблице, судя по единицам, 2 возможных варианта, когда, выбирая из каждой строки по одному значению с единицей, мы получаем двумерные массивы вида:
$rez[колонка][строка] = 1;
количество вариантов такого события мне известно, хранится в переменной $variants. Внесены все эти данные в массив, вот как я распределил данные:

for($ii=1; $ii<$variants+1;$ii++){
for($p=1; $p<16;$p++){
for ($o=0; $o<3;$o++){
$a[$ii][$p][$o] = $win[$p][$o];
}}}

Таким образом получается массив:

$a[$ii][$i][$j] //Это массив, в котором $ii - номер варианта, $i - строка, $j - колонка

При таком разборе у меня получается такой общий массив (я переносы расставил, чтобы по глазам не било):

$a[1][1][0] = 1;
$a[1][1][1] = 1;
$a[1][1][2] = 0;

$a[1][2][0] = 0;
$a[1][2][1] = 1;
$a[1][2][2] = 0;

$a[1][3][0] = 0;
$a[1][3][1] = 1;
$a[1][3][2] = 0;

$a[2][1][0] = 1;
$a[2][1][1] = 1;
$a[2][1][2] = 0;

$a[2][2][0] = 0;
$a[2][2][1] = 1;
$a[2][2][2] = 0;

$a[2][3][0] = 0;
$a[2][3][1] = 1;
$a[2][3][2] = 0;

и нужно из него получить такие массивы:

вот наглядно откуда берется первый вариант массива:
_____________________________
1 = |__$a[1][1][1]__|__1__|__0 _|
2 = |__$a[1][2][1]__|__0__|__0 _|
3 = |__$a[1][3][1]__|__0__|__0 _|

вот наглядно откуда берется второй вариант массива:
_____________________________
1 = |__1__|__$a[2][1][0]__|__0 _|
2 = |__$a[2][2][1]__|__0__|__0 _|
3 = |__$a[2][3][1]__|__0__|__0 _|


Другими словами, должны получиться такие массивы:

$b[1][1][0] = 1; //этот элемент массива разный
$b[1][2][1] = 1;
$b[1][3][1] = 1;
$b[1][4][1] = 1;
$b[1][5][1] = 1;
$b[1][6][1] = 1;
$b[1][7][1] = 1;

$b[2][1][1] = 1; //этот элемент массива разный
$b[2][2][1] = 1;
$b[2][3][1] = 1;
$b[2][4][1] = 1;
$b[2][5][1] = 1;
$b[2][6][1] = 1;
$b[2][7][1] = 1;

Т.е. составить из общего массива данных из таблицы двумерные массивы вида $b[строка][колонка], причем данные взять из соответствующей колонки.

Такую простую таблицу я разобрать могу, трудности возникают в такой, например, комбинации:

№ строки 1 0 2
_____________________________
1 = |__1__|__1__|__0 _|
2 = |__1__|__0__|__0 _|
3 = |__1__|__0__|__1 _|
4 = |__1__|__0__|__0 _|
5 = |__1__|__1__|__0 _|
6 = |__1__|__0__|__0 _|
7 = |__1__|__0__|__0 _|
8 = |__1__|__1__|__1 _|
9 = |__1__|__0__|__0 _|
10 = |__1__|__0__|__0 _|
11 = |__1__|__0__|__1 _|
12 = |__1__|__1__|__0 _|
13 = |__1__|__0__|__0 _|
14 = |__1__|__0__|__1 _|
15 = |__1__|__0__|__0 _|

Помогите, пожалуйста кто чем может. Заранее благодарен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru