Случайные перестановки чисел

Тема в разделе "WASM.BEGINNERS", создана пользователем promtpol, 16 июл 2008.

  1. promtpol

    promtpol New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2008
    Сообщения:
    60
    Не получается сгенерить случайную перестановку чисел
    Она должна зависеть от ключа, чтоб можно было второй раз сгенерить такую же.
    Если кто сталкивался, подскажите.
     
  2. djE

    djE New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2008
    Сообщения:
    2
    Сам тут новичек, но постараюсь ответить...
    Что значит случайная перестановка чисел от ключа?
    Есть исходная последовательность чисел и некий ключ, нужно получить на выходе хеш из чисел? Без обратного преобразования, естесно? Для этого есть множество математических алгоритмов хеширования.
    Или используйте ключ для запуска генератора псевдослучайных чисел, тогда при запуске с разным ключем последовательность будет каждый раз разной, затем хорьте с заданной последовательностью чисел. Рандомайзер алгоритмов тоже великое множество.
     
  3. promtpol

    promtpol New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2008
    Сообщения:
    60
    неее, вот есть последовательность чисел, например, 1, 2, 3, 4, ... , 100
    и получили какуюто перестановку этих чисел, но так, чтоб я смог при необходимости еще раз из первой последовательности получить такую же перестановку.
     
  4. promtpol

    promtpol New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2008
    Сообщения:
    60
    вот, только что повнимательнее прочитал ваше сообщение. я согласен, можно использовать ключ для генератора псевдослучайных чисел, и имея исходную последовательность както сделать перестановку, но как?) У меня в голове чтото ничего не рождается
     
  5. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Любая перестановка -- произведение транспозиций, генерируй например 100 пар чисел (i,j), и представляй ее, как произведение этих транспозиций.
     
  6. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    promtpol
    Алгоритм перестановки можно взять здесь. В параметре k передается номер перестановки (меняется от 0 до !размер_массива). Естественно при одинаковых k перестановки будут одинаковые.
     
  7. promtpol

    promtpol New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2008
    Сообщения:
    60
    спасибо, оч помогли
     
  8. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    promtpol
    Пардон, опечатался: 0 <= k < !размер_массива. Впрочем, в Педивикии это тоже написано.
     
  9. Pahan

    Pahan New Member

    Публикаций:
    0
    Регистрация:
    10 янв 2009
    Сообщения:
    55
    подскажите, пожалуйста, а как решить проблему, когда по номеру нужно получить перестановку элементов 0, 1 длины n например.
    Т.е. если n=3, перестановки
    000
    001
    ...
    111
    то по номеру два нужно получить 001? Подскажите плиз.