|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.02.2015, 19:21 | #1 |
Пользователь
Регистрация: 28.12.2011
Сообщений: 41
|
Вопрос про случайное перемешивание массива
Всем, доброго времени суток!
Дико извиняюсь за тупой вопрос. Есть одномерный массив из N элементов. Надо производить перестановку местами случайных пар элементов чтобы массив считался полностью перемешен. Вопрос в том, сколько раз надо переставлять местами элементы в этих самых случайных парах, исходя из длины массива? Будьте так добры, напомните как это решается, хоть как называется решение. В голову лезут какие-то мутные обрывки про сочетание, нормальное распределение, мат.ожидание и еще что-то, что ни разу не пригодилось за последние 30 с лишним лет. Заранее благодарю! |
18.02.2015, 19:47 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Обычно N достаточно
https://ru.wikipedia.org/wiki/%D0%A2...82%D1%81%D0%B0
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
18.02.2015, 22:23 | #3 | |||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
точно так.
тут на форуме это обсуждалось. позволю себе процитировать себя же: Цитата:
|
|||
18.02.2015, 23:50 | #4 |
Пользователь
Регистрация: 28.12.2011
Сообщений: 41
|
Спасибо за ответы!
Аватар, статью прочитал. Оказывается, все не так, как себе нафантазировал На работе начальство захотело тест профпригодности менеджеров, да еще, чтобы он был в Экселе. Придумали около 300 вопросов с пятью вариантами ответов и критерии их интерпретации, осталось только все это "засунуть" в Эксель на VBA. Собственно тасовать надо вопросы (индексы массива с вопросами) внутри каждого теста. Вобщем-то, перестановку я уже написал, но возникли сомнения, что некоторые элементы массива останутся на исходном месте. Поэтому "для верности" и сделал 1E6 перестановок для массива вопросов в 289 элементов. Потом задумался, а не перебор ли это... Код:
Код:
Последний раз редактировалось Debauchee; 18.02.2015 в 23:58. |
19.02.2015, 08:16 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
достаточно всего ОДИН раз пройтись по массив, правильно переставляя случайные элементы. |
|
19.02.2015, 08:43 | #6 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
20.02.2015, 10:49 | #7 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Smitt&Wesson, извините, но Вы не правы.
я не знаю, читали ли Вы статью и правильно ли поняли ли её смысл, но суть случайного перемешивания: Цитата:
Берём следующий элемент массива и повторяем действия. Позицию, куда поставить элемент - мы получаем случайным образом, причём ПРАВИЛЬНО. С чего это вдруг центральный элемент останется на своём месте?!! я в сообщении #3 выложил код на Паскале. Вы его запустите - проверьте (если нет Паскаля на компьютере, можно воспользоваться онлайн). p.s. думаю, что автор темы уже утратил к ней интерес, судя по его активности... |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перемешивание двухмерного массива | stenl1 | Общие вопросы C/C++ | 10 | 22.11.2016 06:26 |
Случайное перемешивание | Opex911 | Помощь студентам | 21 | 26.09.2011 01:15 |
Перемешивание массива | revaldo666 | Общие вопросы C/C++ | 6 | 19.01.2011 15:04 |
Вопрос. Про передачу массива | DartDayring | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 29.03.2010 02:27 |
Вопрос про циклический сдвиг массива С++ | Юлия12 | Общие вопросы C/C++ | 4 | 08.02.2010 08:52 |