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

Discussion in 'WASM.BEGINNERS' started by promtpol, Jul 16, 2008.

  1. promtpol

    promtpol New Member

    Blog Posts:
    0
    Joined:
    Feb 26, 2008
    Messages:
    60
    Не получается сгенерить случайную перестановку чисел
    Она должна зависеть от ключа, чтоб можно было второй раз сгенерить такую же.
    Если кто сталкивался, подскажите.
     
  2. djE

    djE New Member

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

    promtpol New Member

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

    promtpol New Member

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

    Velheart New Member

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

    Mika0x65 New Member

    Blog Posts:
    0
    Joined:
    Jul 30, 2005
    Messages:
    1,384
    promtpol
    Алгоритм перестановки можно взять здесь. В параметре k передается номер перестановки (меняется от 0 до !размер_массива). Естественно при одинаковых k перестановки будут одинаковые.
     
  7. promtpol

    promtpol New Member

    Blog Posts:
    0
    Joined:
    Feb 26, 2008
    Messages:
    60
    спасибо, оч помогли
     
  8. Mika0x65

    Mika0x65 New Member

    Blog Posts:
    0
    Joined:
    Jul 30, 2005
    Messages:
    1,384
    promtpol
    Пардон, опечатался: 0 <= k < !размер_массива. Впрочем, в Педивикии это тоже написано.
     
  9. Pahan

    Pahan New Member

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