|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 6:04 pm
|
Страница 1 от 1
|
[ 11 мнения ] |
|
Генериране на случайна поредица
| Автор |
Съобщение |
|
dan
Ранг: Форумен бог
Регистриран на: Вто Май 29, 2007 2:23 pm Мнения: 3714 Местоположение: Високо в планината
|
 Генериране на случайна поредица
Трябва да генерирам поне 16 поредици от случайни числа. - Всяка поредица трябва да съдържа ВСИЧКИ числа от 1 до 64 (или от 0 до 63) - Корелацията между различните поредици трябва да бъде минимална
Преди време бях писал едно LGC-генераторче с модул от 31 - тоест за числата от 1 до 31, но сега се оглеждам за алтернативи.
Някакви идеи?
_________________ Хайде де!
|
| Вто Фев 18, 2020 11:43 am |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30685 Местоположение: София
|
 Re: Генериране на случайна поредица
ммм генератори много, алгоритми много, зависи за какви цели го правиш, т.е.очаква ли се някой да се опитва да ти налучква поредиците, примерно както е в казино приложенията, ако да мога единствено да те посъветвам да използваш алгоритъм сертифициран за целите, има такива. Ако няма никой д налучква има доста модификации на lgc, разгледай xorshift имплементациите.
|
| Вто Фев 18, 2020 12:00 pm |
|
 |
|
dan
Ранг: Форумен бог
Регистриран на: Вто Май 29, 2007 2:23 pm Мнения: 3714 Местоположение: Високо в планината
|
 Re: Генериране на случайна поредица
Не ми трябва за криптиране, а за една сигнална обработка. xorshift не върши работа, защото не осигурява условието да включи всички числа по един път. В момента временно съм закърпил положението с пермутации, но търся някакъв по-дефиниран начин.
_________________ Хайде де!
|
| Вто Фев 18, 2020 1:27 pm |
|
 |
|
Н'бабане Гт'муан'га
Ранг: Форумен бог
Регистриран на: Сря Яну 25, 2012 9:14 am Мнения: 5298
|
 Re: Генериране на случайна поредица
Удряш в област където пиша труд  Както и да е, тъй като броят на числта ти е малък (не е като да бяха един милиард примерно), това улеснява доста. Според мен най-простото решение би било да генерираш последователна поредица от 0 то 63 и след това да ги разместиш на случаен принцип, вместо да си играеш да ги генерираш директно. Пак ще ти трябва генератор на случайни числа, обаче няма да ти трябва NRRN (което е трудното в случая), а съвсем обикновен. За да ти е гарантирано разместването, броят на пермутациите трябва да е поне N^2 т.е. в твоя случай поне 4096
_________________ 'просто' е технически синоним на 'красиво'
|
| Вто Фев 18, 2020 1:30 pm |
|
 |
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 8:04 pm Мнения: 2663 Местоположение: София / Велико Търново
|
 Re: Генериране на случайна поредица
Ами генератор на бял шум -> АЦП - измерване на моментната стойност ? п.с. даже и тема имало
|
| Вто Фев 18, 2020 1:32 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
 Re: Генериране на случайна поредица
ако искаш да подходиш академично - правиш Nonlinear Feedback Shift Register. за да избереш правилният полином чети Кнут, Голомб(W. Golomb, G. Gong. Signal Design for Good Correlation.. пак от него Shift Register Sequences.) и Bruce Schneier. иначе практически може да инициализираш кой да е криптографски алгоритъм в counter mode, и взимаш изходната поредица след първите 128 блока. . на теория за къси поредици не трябва да имаш повторения. Това може да го направиш на питон, или матлаб/окава ако работиш на ПЦ или да ползваш билблиотеки и периферии на микроконтрлер (вече потчи всички имат такова). Може да ползваш т.м. True Random Generator, но повечето които говорят че са True Random , не са  и ти трябва допълнителен анализ доколко е рандом. та затова ползвай криптоалгоритъм в коунтер моде или оутпут фийдбек. Поздрави
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Вто Фев 18, 2020 1:48 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30685 Местоположение: София
|
 Re: Генериране на случайна поредица
Според мен случаен генератор в областта 0-63 няма как да ти свърши работа ако наистина е случаен, вероятността да ти върне последователно 64 резултата и да нямаш повторение е доста малка. Както ти писа бабане, изпозлвай генератора за да ги разместиш.
|
| Вто Фев 18, 2020 2:18 pm |
|
 |
|
Bai Ui
Ранг: Форумен бог
Регистриран на: Вто Ное 06, 2018 5:18 pm Мнения: 1750
|
 Re: Генериране на случайна поредица
В Python има готова функция: import random list = [0, 1, 2 .. и така нататък до 62, 63]; random.shuffle(list)
_________________ “Intelligence is the ability to adapt to change.” Stephen Hawking
|
| Вто Фев 18, 2020 2:20 pm |
|
 |
|
nik
Ранг: Форумен бог
Регистриран на: Сря Мар 22, 2006 3:25 am Мнения: 6418
|
 Re: Генериране на случайна поредица
сигурно си се сетил ама ми хрумва една бабешка сметка, случайни генератори много, но не гарантират всички числа, за да включиш всичко и гарантирано само по 1 път можеш да направиш следното: не генерираш случайно число а случайна позиция от оставащата редица числа, и така избираш каквото е останало на тая позиция примерно генерираш случайна позиция от 1 до 64 - получаваш 3 - първоначално това ти дава число 3 в редицата ти остава 1, 2, 4, 5, 6, ..... следващото генериране ти е от 1 до 63, ако отново генерираш случайна позиция 3 - това ти дава число 4 ако не ти се струва достатъчно случайно може да си го доукрасиш още малко
|
| Вто Фев 18, 2020 2:46 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: Генериране на случайна поредица
|
| Сря Фев 19, 2020 1:52 am |
|
 |
|
ig_ivanov
Ранг: Професионалист
Регистриран на: Съб Май 21, 2016 9:47 pm Мнения: 577 Местоположение: Бургас
|
 Re: Генериране на случайна поредица
Сещам се още един вариант: Масив с числата от 0 до 63. Генерираш две случайни числа в интервала 0..63. Разменяш местата на числата в тези позиции. Правиш хватката с размяната достатъчно брой пъти, за да се получи сравнително случайна поредица (т.е. поне 128 пъти или повече в зависимост от генератора). Така ще си сигурен, че всички числа са налице и няма повтарящи се.
|
| Сря Фев 19, 2020 11:38 am |
|
|
|
Страница 1 от 1
|
[ 11 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 9 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|