![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 20.04.2009
Сообщений: 50
|
![]()
Здравствуйте!
Имеется код bash скрипта: Код:
1. Определять необходимое нам количество случайных цифр 2. Генерировать их. 3. Заносить в массив. 4. Перебирать уже сгенерированные цифры из массива и сравнивать их с только что сгенерированным. 5. Если они равны, то не делать ничего. А если не равны, то переходить к следующей ячейке массива и начинать генерировать случайное число для него. То есть это генератор случайных чисел. С одним уточнением что цифры за один розыгрыш не должны повторяться. И что-то у меня не получается. Я знаю где. Первая цифра закинутая в массив всегда равна себе. То есть seans[$count]=$number. Зацикливается. Но как сделать чтобы первый раз сравнения не было не пойму. Подскажите пожалуйста, кто сталкивался? п.с. Еще нужно будет делать сортировку по возрастанию. Не подскажите в какую сторону думать? Заранее спасибо. Последний раз редактировалось DS75; 15.10.2013 в 13:35. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
не, не так. Если есть заданное число чисел, которые могут выпасть (лото, колода карт и т.д.), то гораздо проще и эффективнее заполнить массив всеми возможными значениями (в вашем случае от 1 до 36), после чего перемешать (только ПРАВИЛЬНО перемешать!!) массив случайным образом.
Потом брать числа из перемешанного массива по одному. p.s. случайное распределение будет нормальное, если в алгоритме перемешивания будет учтено следующее: Как не надо тасовать карты Последний раз редактировалось Serge_Bliznykov; 15.10.2013 в 13:51. |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 20.04.2009
Сообщений: 50
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
а вот конкретным кодом я Вам помочь не могу - я не владею языком скриптов Bash...
![]() извините... |
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 20.04.2009
Сообщений: 50
|
![]() Цитата:
Буду туда копать. |
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
если Вам поможет код на Паскале, то можете его поиском найти на форуме (или скажите, я набросаю)...
p.s. в том коде на C, что вы дали ссылочку, для перемешивания массива используется процедура random_shuffle. если надо, то именно её код я и могу Вам набросать! |
![]() |
![]() |
![]() |
#7 | |
Пользователь
Регистрация: 20.04.2009
Сообщений: 50
|
![]() Цитата:
Вот тут прочитал что случайные набор чисел получить не http://hashcode.ru/questions/22796/c...random_shuffle получится. Если вам не сложно помогите с кодом random_shuffle. |
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
во-первых, любой генератор псевдослучайных чисел нужно перед использованием иницилизировать. (судя по скриншоту ваша ошибка именно в том, что генератор НЕ ИНИЦИЛИЗИРОВАН!)
Насколько я могу судить, ГСПЧ в Bash не является исключением: Why is Bash’s $RANDOM not seeded (?) on some machines? во-вторых, вижу на скриншоте loto.exe Вы этот exe-шник на Bash написали? Какова ваша конечная цель - получить консольную программку (exe)?! в-третьих, Цитата:
А по сути, да, СЛУЧАЙНЫХ чисел генераторы ПСЕВДО-случайных чисел не дают. Ну и что? Вы думаете, что это мешает ВСЕМ играм на компьютерах использовать ПСЕВДОСЛУЧАЙНЫЕ?! |
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 20.04.2009
Сообщений: 50
|
![]() Код:
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Bash скрипт восстановления файла untrash | Gadjett | Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) | 0 | 04.05.2013 12:35 |
bash-скрипт | FLEXO_187 | Помощь студентам | 0 | 24.01.2013 21:58 |
bash скрипт | monster-bonster | Операционные системы общие вопросы | 2 | 24.09.2012 13:54 |
bash скрипт процессы в фоновом режиме | Zerofill | Операционные системы общие вопросы | 0 | 04.04.2012 16:51 |
bash скрипт | Rыся | Фриланс | 3 | 19.01.2011 13:58 |