|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.09.2017, 20:06 | #11 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Лично я думаю, что помощь будет гораздо более эффективной, если Вы более внятно объясните, что именно Вам нужно перемешать и зачем. Пока же больше похоже на классическую проблему XY
|
04.09.2017, 20:26 | #12 |
Пользователь
Регистрация: 18.10.2016
Сообщений: 27
|
Необходимо перемешать длинную последовательность, которая находится в файле.
Результат также записать в файл. |
04.09.2017, 20:31 | #13 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Прочитать то все равно нужно в память, MemoryStream например и в нем побайтно, как в массиве свапить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
04.09.2017, 20:32 | #14 |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
Мысленно разбиваем последовательность на N кусков,
размером RAND_MAX + 1 каждый, кроме последнего, конечно же. Дальше всё сводится к выбору рандомного "куска" и рандомному выбору в нем элемента. Последний кусок можно обработать отдельно. А можно и свой ГПСЧ накатать. |
04.09.2017, 21:09 | #15 |
Пользователь
Регистрация: 13.11.2016
Сообщений: 84
|
Осталась статейка в закладках.
https://habrahabr.ru/post/208178/ |
04.09.2017, 22:14 | #16 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Если символы в 1-байтной кодировке, то: генерируете случайное число от нуля до количества символов в файле. Первый символ из файла сохраняете во временную переменную, а вместо него пишете символ с индексом <сгенерированное случайное число>. Опять генерируем число и меняем тот символ, что сохранили предварительно с тем, чей индекс сгенерировали. И так сколько-нибудь много итераций делаем, чем больше - тем сильнее всё перемешается. Памяти лишней не понадобится, если большая вероятность, что будут целые группы символов, оставшихся на своих местах.
|
04.09.2017, 22:26 | #17 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,551
|
Можно алгоритм Фишера-Йетса реализовать прямым доступом к файлу. Правда скорость будет не ахти.
E-Mail: arigato.freelance@gmail.com
|
04.09.2017, 23:05 | #18 |
Пользователь
Регистрация: 18.10.2016
Сообщений: 27
|
Спасибо за идеи, подумаю, как лучше реализовать.
|
06.09.2022, 17:36 | #19 | |
Новичок
Джуниор
Регистрация: 06.09.2022
Сообщений: 1
|
Цитата:
|
|
07.09.2022, 00:47 | #20 |
Форумчанин
Регистрация: 27.04.2022
Сообщений: 493
|
стимулятор https://yoomoney.ru/to/41001303250491
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нахождение самой длинной последовательности | ARV.net | C# (си шарп) | 7 | 03.11.2012 13:06 |
Перемешивание массива | revaldo666 | Общие вопросы C/C++ | 6 | 19.01.2011 15:04 |
Перемешивание строк | gamer123 | Общие вопросы Delphi | 17 | 25.08.2010 20:10 |
Текст в очень длинной таблице | ANG3 | Microsoft Office Word | 2 | 27.01.2010 19:58 |
Перемешивание строк | Черничный | БД в Delphi | 3 | 15.07.2008 14:11 |