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

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

Войти
Регистрация
Восстановить пароль
 
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 531
#1

перемешать матрицу - C++

04.09.2013, 15:19. Просмотров 710. Ответов 9
Метки нет (Все метки)

Вобщем нужен только сам цикл который бы перемешивал все элементы в матрице случайным образом,хотя бы идею как это реализовать то
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2013, 15:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос перемешать матрицу (C++):

Перемешать массив - C++
Перемешать массив чисел по правилам: 1) Позиция каждого элемента после перемешивания должна отличаться от его позиции до переме- ...

Перемешать массив строк. - C++
Здравствуйте, не могу сделать программу, где будет генерироваться имена без повторов, тоесть даны к примеру 8 имен, и она должна выдавать...

C++ Перемешать буквы слов из файла - C++
И так, у меня задача написать игру "Угадай слово". Есть текстовый файл со словами из 5 букв, например, smile. На экран должно вывестись...

Перемешать числа в случайном порядке - C++
Есть набор чисел: { 1, 2, 3, 4, 5, 6, 7, 8, 0 } Нужно написать функцию, которая будет перемешивать данные числа в случайном порядке.

Рандомно перемешать слова n раз - C++
Смотрите прогг запрашивает число ,количество треков ,например мы ввели 5 Затем оно запрашивает у нас 5 треков (песни) Мы вводим каждый...

Рандомно перемешать элементы одномерного массива - C++
Необходимо написать программу которая будет перемешывать рандомно елементы массива. Размерность массива равна 10( ввод с клавиатуры).

9
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,068
Завершенные тесты: 1
04.09.2013, 15:28 #2
создать функцию swap(int x,int y, int x2, int y2, type[][] matrix); которая меняла бы местами любый два элемента любой матрицы.

брать два случайных числа x и y и использовать функцию
1
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,048
Записей в блоге: 17
04.09.2013, 15:31 #3
std::random_suffle<> и пройтись по строкам

http://www.cplusplus.com/reference/algorithm/random_shuffle/
1
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 531
04.09.2013, 17:27  [ТС] #4
C++
1
2
3
4
5
6
7
8
9
10
    srand(time(NULL));
    for (int i = 0; i < n-1;i++) 
    {
        for (int j = 0; j < m; j++) 
        { 
 
            swap(A[i][j],A[rand() % m][rand() % n]);
 
        }
    }

Вот такая запись вроде делает то что нужно,но я не могу понять,почему она у меня вылетает за диапазон строк,n-1 написал,и в последнем столбце редко сортируются символы все,примерно 1 к 10,ну это может быть случайность уже,а вот по поводу выхода за границу хз
0
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,048
Записей в блоге: 17
04.09.2013, 17:39 #5
Все верное было
C++
1
for (int i = 0; i < n; i++)
Строки со столбцами не перепутали случайно ?
1
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,068
Завершенные тесты: 1
04.09.2013, 17:46 #6
Цитата Сообщение от a.n.o.n.i.m Посмотреть сообщение
swap(A[i][j],A[rand() % m][rand() % n]);
каким образом она меняет элементы, она принимает ссылки?
1
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,048
Записей в блоге: 17
04.09.2013, 17:50 #7
Вероятно std::swap

http://www.cplusplus.com/reference/algorithm/swap/
1
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 531
04.09.2013, 19:11  [ТС] #8
насчет std::
using namespace std пишу

Avazart и вправду не внимательность,перепутал,теперь все гуд
0
Миниатюры
перемешать матрицу  
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,048
Записей в блоге: 17
04.09.2013, 19:16 #9
Имена нужно адекватные давать переменным, тогда легче искать ошибки.

C++
1
2
3
4
5
    for (int сol=0; сol<col_count; ++col) 
    {
        for (int row=0; row<row_count; ++row) 
        {
          // ...
0
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 531
04.09.2013, 19:19  [ТС] #10
Да еще с учебников то i да j либо m да n поэтому уже на автомате пишу
0
04.09.2013, 19:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.09.2013, 19:19
Привет! Вот еще темы с ответами:

Рандомно перемешать элементы двумерного массива - C++
Необходимо написать программу которая будет перемешывать рандомно елементы двумерного массива. Размерность массива 5 на 5. Елементы массива...

Как рандомно перемешать уже имеющуюся последовательность? - C++
. Доброго времени суток всем. Столкнулся вот с такой проблемой.Дана последовательность 1 3 5 7 9 45 24 6. Надо сделать так,чтобы они...

Перемешать массив так, чтобы числа в нём не повторялись - C++
как сделать чтоб при выводе числа не повторялись ? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #define M 3 using namespace std; ...

Ввести слова и/или цифры, а потом перемешать их между собой - C++
Надо сделать так, что бы можно было ввести слова и\или цифры, а потом перемешать их между собой. Для меня это оказалось слишком сложной...


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

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

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