Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

random в очереди ?

-

Вопросы и ответы, обсуждения

- Ваши вопросы по C# только в данном разделе

Ответ
 
Опции темы
Старый 10.12.2012, 17:25   #1
Заблокирован
 Сержант
Аватар для [Na`Vi]DendI
 
[Na`Vi]DendI на правильном пути[Na`Vi]DendI на правильном пути
Регистрация: 06.06.2012
Сообщений: 131
Популярность: 102
Сказал(а) спасибо: 141
Поблагодарили 131 раз(а) в 78 сообщениях
Отправить сообщение для [Na`Vi]DendI с помощью Skype™
 
По умолчанию random в очереди ?

У меня в Queue находятся строки к примеру 100 штук, возможно ли их рандомно раскидать ?
  Ответить с цитированием
Старый 10.12.2012, 18:51   #2
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: random в очереди ?

Цитата:
Сообщение от [Na`Vi]DendIПосмотреть сообщение
У меня в Queue находятся строки к примеру 100 штук, возможно ли их рандомно раскидать ?

Я не помню есть ли там доступ по индексу, но если что можно выгрузить в массив и там перемешивать...
Самый простой способ - брать 2 числа от 0 до N (конец массива) и менять местами элементы с этими индексами.. и так ну допустим 3N раз...

Последний раз редактировалось Sinyss; 10.12.2012 в 18:56.
  Ответить с цитированием
Старый 10.12.2012, 20:02   #3
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: random в очереди ?

Код:
            List<string> strings = new List<string>();
            for (int i = 0; i < 100; i++)
            {
                strings.Add(i.ToString());
            }
            List<string> stringsRandomed = new List<string>();
            for (int i = 0; i < 100; i++)
            {
                int index = new Random(DateTime.Now.Millisecond).Next(0, strings.Count);
                stringsRandomed.Add(strings[index]); strings.RemoveAt(index);
                
            }
Как один из вариантов.
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
  Ответить с цитированием
Старый 10.12.2012, 20:09   #4
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: random в очереди ?

Цитата:
Сообщение от NickiteeПосмотреть сообщение
Как один из вариантов.

int index = new Random(DateTime.Now.Millisecond).Next(0, strings.Count);
Вот так плохо делать... лучше вызывать из одного экземпляра...
Просто я сталкивался с ситуациями когда 2 объекта Random создавались практически одновременно и потом выдавали близкие значения...

И кстати new Random(DateTime.Now.Millisecond) вернет хотя бы 2 идентичных объекта... выполнение такой функции не займет даже миллисекунды...

Последний раз редактировалось Sinyss; 10.12.2012 в 20:12.
  Ответить с цитированием
Старый 10.12.2012, 20:12   #5
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: random в очереди ?

Цитата:
Сообщение от SinyssПосмотреть сообщение
int index = new Random(DateTime.Now.Millisecond).Next(0, strings.Count);
Вот так плохо делать... лучше вызывать из одного экземпляра...
Просто я сталкивался с ситуациями когда 2 объекта Random создавались практически одновременно и потом выдавали близкие значения...

Окей, добавить:
Код:
Thread.Sleep(5);
(Естественно функцию вызвать в отдельном потоке)
Просто другого приемлемого сида для рандома нету.
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
  Ответить с цитированием
Старый 10.12.2012, 20:18   #6
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: random в очереди ?

Достаточно пустого конструктора, а в цикле просто вызывать Next() ...
  Ответить с цитированием
Старый 10.12.2012, 20:23   #7
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: random в очереди ?

Цитата:
Сообщение от SinyssПосмотреть сообщение
Достаточно пустого конструктора, а в цикле просто вызывать Next() ...

Просто Next() - не получится, тогда мы не сможем контролировать рейндж генерируемых цифр.
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
  Ответить с цитированием
Старый 10.12.2012, 20:39   #8
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: random в очереди ?

Цитата:
Сообщение от NickiteeПосмотреть сообщение
Просто Next() - не получится, тогда мы не сможем контролировать рейндж генерируемых цифр.

ну с ренджем, это не принципиально... значения все равно выйдут более случайные...
Можно брать Next а потом по модулю N+1
  Ответить с цитированием
Старый 10.12.2012, 20:40   #9
 Сержант
Аватар для Yukikaze
 
Yukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядом
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
 
По умолчанию Re: random в очереди ?

Код:
Random rnd = new Random();  
public void Shuffle<T>(IEnumerable<T> list)  
{  
    int n = list.Count;  
    while (n > 1) 
    {  
        n--;  
        int k = rnd.Next(n + 1);  
        T value = list[k];  
        list[k] = list[n];  
        list[n] = value;  
    }  
}
где то я уже выкладывал этот алгоритм перемешивания коллекций
________________
Talk is cheap. Show me the code
— Linus Torvalds
  Ответить с цитированием
Старый 11.12.2012, 17:26   #10
Заблокирован
 Сержант
Аватар для [Na`Vi]DendI
 
[Na`Vi]DendI на правильном пути[Na`Vi]DendI на правильном пути
Регистрация: 06.06.2012
Сообщений: 131
Популярность: 102
Сказал(а) спасибо: 141
Поблагодарили 131 раз(а) в 78 сообщениях
Отправить сообщение для [Na`Vi]DendI с помощью Skype™
 
По умолчанию Re: random в очереди ?

Цитата:
Сообщение от [qpdb]Посмотреть сообщение
Зачем тебе тыж на супер брутер

Маразм напал ? У вас Волчанка
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Программа] WOT BOX Оптимизатор очереди на взвод Ratte_10,5m World of Tanks 0 23.08.2012 21:03
как зайти в 109 данж БЕЗ ОЧЕРЕДИ vovapro Общение и обсуждение Perfect World 7 28.09.2010 07:02

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 06:54.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net