Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 17:03

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Приступ склероза (задача)
СообщениеДобавлено: Ср май 04, 2016 14:26 
Как случайным образом выбрать единицу из битовой шкалы?

Т.е. полностью заполненная единицами шкала - полная колода карт. После сдачи нескольких карт появляются нули. Как случайно вытянуть очередную карту?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Приступ склероза (задача)
СообщениеДобавлено: Чт май 05, 2016 02:44 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
gudleifr писал(а):
Как случайным образом выбрать единицу из битовой шкалы?

Т.е. полностью заполненная единицами шкала - полная колода карт. После сдачи нескольких карт появляются нули. Как случайно вытянуть очередную карту?

М-последовательности, как вариант.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Приступ склероза (задача)
СообщениеДобавлено: Чт май 05, 2016 10:58 
KPG писал(а):
М-последовательности, как вариант.
???


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Приступ склероза (задача)
СообщениеДобавлено: Чт май 05, 2016 18:53 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
gudleifr писал(а):
KPG писал(а):
М-последовательности, как вариант.
???

Простое и где то начально достаточное объяснение такое http://thebard.narod.ru/bel/10.htm
Номера отводов (для операции xor -сложения битов) при сдвиге м-последовательности нужного N-1 периода
и возможные варианты схемы приводятся в справочниках (также см. картинки по способу образования связей в регистре в i-nete
две базисные схемы http://mybiblioteka.su/3-3874.html )

Сходу не нашёл в i-nete и ещё не вспомнил у себя книгу где они приведены для 2-х базисных вариантов
суммирования битов с отводов регистра для формирования очередного бита для сдвигового регистра.

т.е. после каждого такта сдвига на отводах регистра получаем очередное число (псевдослучайное) из N-цепочки
Псевдослучайное т.к. они предсказуемы из предыдущего состояния и чем больше разрядов регистра, тем больше вариантов
разных "конфигураций номеров отводов" в типовых схемах, (8бит - это уже 255 псевдослучайных чисел и сколько то вариантов номеров отводов бит)
Начальная инициализация регистра - произвольное не 0 число.

М-последовательность хорошо используется при сигнатурном анализе неисправности логических схем (с пониманием некоторых ограничений данного метода)

P.S. Остальная теория "комбинирования" м-последовательностей согласно их свойств - это уже в книгах. :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Приступ склероза (задача)
СообщениеДобавлено: Чт май 05, 2016 20:40 
KPG писал(а):
...
Это все понятно, но каким местом это относится к задаче - выборе случайной 1 из разреженной шкалы?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Приступ склероза (задача)
СообщениеДобавлено: Чт май 05, 2016 21:02 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Код:
\ для наглядности с локальными переменными(spf4) для 32-х битной шкалы

CREATE arr 32 4 * ALLOT

\ n -- bit
: chose-bit { n \ i }
0 TO i
RANDOMIZE
32 0 DO 1 I LSHIFT n AND IF 1 I LSHIFT  arr i + ! i 4 + TO i THEN LOOP
i 4 / CHOOSE 4 * arr + @ ;

0x377754AF chose-bit

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Приступ склероза (задача)
СообщениеДобавлено: Чт май 05, 2016 21:09 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
gudleifr писал(а):
KPG писал(а):
...
Это все понятно, но каким местом это относится к задаче - выборе случайной 1 из разреженной шкалы?

Каждый бит в шкале 0/1 имеет номер от 0...N и псевдослуайный способ это один из методов выбора без повтора "номеров" этих битов. (из "колоды" бит начально состоящей из единиц ) и пометки этих бит в 0.

P.S. Если, например, псевдослучайно начально сформировать таблицу расположения индексов этих битов,
то возможно перетусовывать "биты-номера" в этой таблице например так (формирование новой таблицы)
используя туже псевдослучайную последовательность.
На 0-ое место перемещаем номер из ячейки по текущему полученному псевдочислу. на 1ое по второму псевдочислу и.т.д.
Возможно это неплохая стратегия перетусовывания "битов-номеров"
Sorry, если не до понял проблематику вопроса (из-за сжатого описания) и необходимо какое то фикс решение. :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Приступ склероза (задача)
СообщениеДобавлено: Чт май 05, 2016 22:19 
chess писал(а):
...
Да, примерно, так (с поправкой на то, что шкала обычно не влезает в одну ячейку - даже в обычной колоде 36 карт). Но, если я выделяю дополнительный массив, то не нельзя ли использовать его с большей эффективностью?
И, еще, идеологическая ошибка. Разумное применение шкал - именно для хранения данных, и использовать ее в качестве входного параметра - некоторая несуразность.

KPG писал(а):
...
Речь идет не о генерации последовательности, а о ее анализе. Сгенерировать случайную перестановку - не проблема.


Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB