ФорумСообществоПрофессиональная деятельностьВзаимопомощь → Помогите реализовать определенный алгоритм перемешивания.

Помогите реализовать определенный алгоритм перемешивания.

  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz 24 сентября 2012 г. 10:38

    А именно, перемешивание "пролистыванием"… как в очень популярном способе тасования карт - http://36cc.ru/tas/285-prolistivaniem.html
    Все бы ничего, но нужно это замутить НЕ выделяя дополнительную область памяти относительно массивов. Дано лишь только 1 входной массив, его и меняем.
    Предположим, есть уже отсортированный(для простоты) массив из чисел:
    0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
    Как в примере с картами, нужно поделить его на двое(2-я часть будет начинаться с 5-ти).

    Ну а на выходе, по сути, должен выйти такой порядок:
    0, 5, 1, 6, 2, 7, 3, 8, 4, 9.

    Возможно ли решить эту задачу при помощи перестановки элементов?
    Целый день думал над решением, так и не смог ничего придумать.
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 24 сентября 2012 г. 10:43, спустя 5 минут 21 секунду

    я всегда задумывался над твоим профессионализмом :)
    Спустя 4 сек.
    хуль тут целый день думать то?
    Сапожник без сапог
  • Josh

    Сообщения: 2008 Репутация: N Группа: Кто попало

    Spritz 24 сентября 2012 г. 10:59, спустя 15 минут 41 секунду

  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz 24 сентября 2012 г. 11:13, спустя 14 минут 33 секунды

    Не, не)… не то)….
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 24 сентября 2012 г. 11:26, спустя 13 минут 10 секунд

    дискретное преобразование фурье -> прореживание по частоте, смотри как индексы расчитываются в реализации быстрого преобразования
    Work, buy, consume, die
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 24 сентября 2012 г. 11:46, спустя 19 минут 56 секунд


    дискретное преобразование фурье -> прореживание по частоте, смотри как индексы расчитываются в реализации быстрого преобразования

    он не знает математики
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 24 сентября 2012 г. 11:59, спустя 13 минут 4 секунды


    я всегда задумывался над твоим профессионализмом :)
    Спустя 4 сек.
    хуль тут целый день думать то?

    твой пост остался без ответа

    "Жизнь слишком коротка, чтобы тратить время на троллей и прочих отбросов общества" © Rotten
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 24 сентября 2012 г. 15:07, спустя 3 часа 7 минут 7 секунд

    упс, я обосрался, тут получается только первая итерация прореживания, поэтому инвертирование битов индексов как в бпф работать не будет
    Work, buy, consume, die
  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz 25 сентября 2012 г. 3:53, спустя 12 часов 46 минут 45 секунд

    А теперь представь себе, что массив длиной полтора гига, памяти у тебя 2, и системе 300мб нужно

    скинуть пол массива на винт)…
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 25 сентября 2012 г. 6:33, спустя 2 часа 39 минут 51 секунду

    ога, сваперы блеать, скорость доступа к памяти падает на столько, что алгоритмы со сложностью на порядок больше с задачей справляются быстрее
    Work, buy, consume, die
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 25 сентября 2012 г. 14:33, спустя 7 часов 59 минут 23 секунды


    ога, сваперы блеать, скорость доступа к памяти падает на столько, что алгоритмы со сложностью на порядок больше с задачей справляются быстрее
    ну это все очевидно. сомневаюсь что у роттена такие задачи. там 2+2 то уже в свап)
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!