![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 28.12.2011
Сообщений: 41
|
![]()
Всем, доброго времени суток!
Дико извиняюсь за тупой вопрос. Есть одномерный массив из N элементов. Надо производить перестановку местами случайных пар элементов чтобы массив считался полностью перемешен. Вопрос в том, сколько раз надо переставлять местами элементы в этих самых случайных парах, исходя из длины массива? Будьте так добры, напомните как это решается, хоть как называется решение. В голову лезут какие-то мутные обрывки про сочетание, нормальное распределение, мат.ожидание и еще что-то, что ни разу не пригодилось за последние 30 с лишним лет. Заранее благодарю! |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Обычно N достаточно
https://ru.wikipedia.org/wiki/%D0%A2...82%D1%81%D0%B0
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 | |||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
точно так.
тут на форуме это обсуждалось. позволю себе процитировать себя же: Цитата:
|
|||
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 28.12.2011
Сообщений: 41
|
![]()
Спасибо за ответы!
Аватар, статью прочитал. Оказывается, все не так, как себе нафантазировал ![]() На работе начальство захотело тест профпригодности менеджеров, да еще, чтобы он был в Экселе. Придумали около 300 вопросов с пятью вариантами ответов и критерии их интерпретации, осталось только все это "засунуть" в Эксель на VBA. Собственно тасовать надо вопросы (индексы массива с вопросами) внутри каждого теста. Вобщем-то, перестановку я уже написал, но возникли сомнения, что некоторые элементы массива останутся на исходном месте. Поэтому "для верности" и сделал 1E6 перестановок для массива вопросов в 289 элементов. Потом задумался, а не перебор ли это... Код:
Код:
Последний раз редактировалось Debauchee; 18.02.2015 в 23:58. |
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
достаточно всего ОДИН раз пройтись по массив, правильно переставляя случайные элементы. |
|
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]() Цитата:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
![]() |
![]() |
![]() |
#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 |