Рандомизация массива!
|
|
tourniquet | Дата: Суббота, 16 Февраля 2013, 00:08 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Вечер добрый! Есть массив Код int someArray[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; И есть вопрос - как можно перемешать эти числа в массиве?
Сообщение отредактировал tourniquet - Суббота, 16 Февраля 2013, 00:10 |
|
| |
Desert_Hunter | Дата: Суббота, 16 Февраля 2013, 01:13 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| Код int main() { const int n = 10; int a[n]; srand(time(NULL)); cout << "Массив: "; for (int i=1;i<n;i++) { a[i]=rand()%(0+10); cout << a[i] << " "; } }
Сообщение отредактировал Desert_Hunter - Суббота, 16 Февраля 2013, 01:13 |
|
| |
froex | Дата: Суббота, 16 Февраля 2013, 01:54 | Сообщение # 3 |
Руководитель Froexilize team
Сейчас нет на сайте
| tourniquet, std::random_shuffle()
Desert_Hunter, Цитата (Desert_Hunter) for (int i=1;i<n;i++) Не все элементы переберутся.
Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Сообщение отредактировал froex - Суббота, 16 Февраля 2013, 01:55 |
|
| |
tourniquet | Дата: Понедельник, 18 Февраля 2013, 12:53 | Сообщение # 4 |
частый гость
Сейчас нет на сайте
| Спасибо! Я забыл написть что я пишу на Си, но всё равно спасибо, я нашёл решение
Код #include <stdio.h> #include <stdlib.h> #include <time.h>
int shuffleArray() {
int someArray[9]; int i, j, temp;
srand(time(NULL));
for(i = 0; i < 9; i++ ) { someArray[i] = i + 1; }
for(i = 0; i < 9; i++) printf(" %d", someArray[i]);
for(i = 0; i < 9; i++) { j = (rand() % 9) + 1;
temp = someArray[i]; someArray[i] = someArray[j]; someArray[j] = temp; }
printf("\n------------------------------------------\n");
for(i = 0; i < 9; i++) printf(" %d", someArray[i]);
printf("\n"); return 0;
}
|
|
| |
noname | Дата: Четверг, 14 Марта 2013, 16:39 | Сообщение # 5 |
заслуженный участник
Сейчас нет на сайте
| tourniquet, ты последовательно меняешь значение каждого элемента массива с любым другим элементом.
а я бы последовательно менял значение каждого элемента массива, кроме последнего, с любым другим элементом, кроме тех, чей индекс меньше.
смысл в следующем: 1. в первую ячейку массива заносим любое из хранимых значений. и всё- от этой ячейки мы добились всего, что нам нужно, так давайте не будем больше её трогать. 2. и так же поступаем с оставшейся частью лабиринта(без выбывшей ячейки). 3. и, да- если у нас осталась одна ячейка, то не трогаем её- смысла нет.
все правила форумной игры Дуэль Программистов
|
|
| |