Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: Peter, DEMBEL  
Словарь++
Format-X22Дата: Пн, 09 Мая 2011, 16:35 | Сообщение # 31
Участник
И толку? Мне не итем найти надо, а сгенерировать случайный список. Получается в файл пишутся построчно номера строк, которые мы берем из словаря, все числа уникальны. Потом просто читаем по очереди эти строки и выводим пользователю ту строку из словаря, которая указана в этой строке списка.

Добавлено (09 Май 2011, 16:35)
---------------------------------------------
А вообще спасибо за предложенные варианты, но мне они к сожалению не подходят =)


Мой сайт - http://фирмы.онлайн
 
СообщениеИ толку? Мне не итем найти надо, а сгенерировать случайный список. Получается в файл пишутся построчно номера строк, которые мы берем из словаря, все числа уникальны. Потом просто читаем по очереди эти строки и выводим пользователю ту строку из словаря, которая указана в этой строке списка.

Добавлено (09 Май 2011, 16:35)
---------------------------------------------
А вообще спасибо за предложенные варианты, но мне они к сожалению не подходят =)


Автор - Format-X22
Дата добавления - 09 Мая 2011 в 16:35
DEMBELДата: Пн, 09 Мая 2011, 16:42 | Сообщение # 32
Наш дизайнер
ну так сам же сказал что
Quote (Format-X22)
потом читается список и ищется совпадение, если совпадений нет - пишется в конец.

т.е. нужно сгенерировать случайный список из строк файла, понятно... а скока строк в файле?


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениену так сам же сказал что
Quote (Format-X22)
потом читается список и ищется совпадение, если совпадений нет - пишется в конец.

т.е. нужно сгенерировать случайный список из строк файла, понятно... а скока строк в файле?

Автор - DEMBEL
Дата добавления - 09 Мая 2011 в 16:42
Format-X22Дата: Пн, 09 Мая 2011, 16:47 | Сообщение # 33
Участник
от 0 до бесконечности =)
Но я думаю словари менее 50 строк бессмысленны, у меня 60+ они, а ещё надо будет их все объединить в один для так сказать "пробежаться по всему материалу". А прогрессия геометрическая какая-то выходит и чем больше строк тем больше будет падать скорость.


Мой сайт - http://фирмы.онлайн
 
Сообщениеот 0 до бесконечности =)
Но я думаю словари менее 50 строк бессмысленны, у меня 60+ они, а ещё надо будет их все объединить в один для так сказать "пробежаться по всему материалу". А прогрессия геометрическая какая-то выходит и чем больше строк тем больше будет падать скорость.

Автор - Format-X22
Дата добавления - 09 Мая 2011 в 16:47
DEMBELДата: Пн, 09 Мая 2011, 17:04 | Сообщение # 34
Наш дизайнер
да, это есть... ну смотри, во первых можно загрузить все строки в скрытый список и перемешать его в цикле, например так:
Code
ListBoxSize "ListBox1" "[Count]"
Loop "1" "500" "[i]"
Random "[Count]-1" "[Random]"
ListBoxMoveItem "ListBox1" "[Random]+1" "1"
EndLoop

500 оборотов делаются примерно за 3сек, скорость постоянная.

Добавлено (09 Май 2011, 17:04)
---------------------------------------------
регулируя кол-во оборотов можно управлять степенью перемешивания. так что необязательно если у тебя 1000 строк устанавливать 1000 оборотов и перемешивать все сверху донизу. В большинстве случаев, хватит 200-300, рандом будет достигнут. Но конечно, это способ без фанатизма.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениеда, это есть... ну смотри, во первых можно загрузить все строки в скрытый список и перемешать его в цикле, например так:
Code
ListBoxSize "ListBox1" "[Count]"
Loop "1" "500" "[i]"
Random "[Count]-1" "[Random]"
ListBoxMoveItem "ListBox1" "[Random]+1" "1"
EndLoop

500 оборотов делаются примерно за 3сек, скорость постоянная.

Добавлено (09 Май 2011, 17:04)
---------------------------------------------
регулируя кол-во оборотов можно управлять степенью перемешивания. так что необязательно если у тебя 1000 строк устанавливать 1000 оборотов и перемешивать все сверху донизу. В большинстве случаев, хватит 200-300, рандом будет достигнут. Но конечно, это способ без фанатизма.


Автор - DEMBEL
Дата добавления - 09 Мая 2011 в 17:04
Format-X22Дата: Пн, 09 Мая 2011, 17:12 | Сообщение # 35
Участник
Ммм, неплохо.
Как я понимаю берем случайную строку из списка и перемещаем на первую строку?
Попробую, думаю это решение проблемы :)


Мой сайт - http://фирмы.онлайн
 
СообщениеМмм, неплохо.
Как я понимаю берем случайную строку из списка и перемещаем на первую строку?
Попробую, думаю это решение проблемы :)

Автор - Format-X22
Дата добавления - 09 Мая 2011 в 17:12
DEMBELДата: Пн, 09 Мая 2011, 17:26 | Сообщение # 36
Наш дизайнер
да, при этом сразу сначала списка железно идет рандом. кроме того алгоритм можно усовершенствовать, добавить еще перестановки в цикле, не только на первю но и тоже рандомную позицию. Подобрать баланс рандома и скорости нужно.

Но это все несущественно, если ты будешь читать строку из списка тоже беря ее рандомно, то "рандом существенно увеличивается" и при меньшем числе оборотов...

Добавлено (09 Май 2011, 17:26)
---------------------------------------------
но это уже со снижением скорости... нужно контролировать неповторяемость при вынимании из списка.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениеда, при этом сразу сначала списка железно идет рандом. кроме того алгоритм можно усовершенствовать, добавить еще перестановки в цикле, не только на первю но и тоже рандомную позицию. Подобрать баланс рандома и скорости нужно.

Но это все несущественно, если ты будешь читать строку из списка тоже беря ее рандомно, то "рандом существенно увеличивается" и при меньшем числе оборотов...

Добавлено (09 Май 2011, 17:26)
---------------------------------------------
но это уже со снижением скорости... нужно контролировать неповторяемость при вынимании из списка.


Автор - DEMBEL
Дата добавления - 09 Мая 2011 в 17:26
Format-X22Дата: Пн, 09 Мая 2011, 17:46 | Сообщение # 37
Участник
Можно ещё через 2 списка. Один просто скопированный из словаря, а второй пустой и в него кидать случайную строку из первого в конец до тех пор пока в списке со словарем не закончатся строки. Думаю вот тут 100% рандом :)

Мой сайт - http://фирмы.онлайн
 
СообщениеМожно ещё через 2 списка. Один просто скопированный из словаря, а второй пустой и в него кидать случайную строку из первого в конец до тех пор пока в списке со словарем не закончатся строки. Думаю вот тут 100% рандом :)

Автор - Format-X22
Дата добавления - 09 Мая 2011 в 17:46
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: