Помогите найти алгоритм

Тема в разделе "WASM.A&O", создана пользователем Ramakrishna, 2 май 2006.

  1. Ramakrishna

    Ramakrishna New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    6
    Адрес:
    Russia
    Нужен оптимальнейший алгоритм перебора всех десятизначных чисел (в десятичной системе) в которых все цифры должны быть разными
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    0123456789

    0123456798

    0123456879

    0123456987

    0123456978

    ...

    9876543210

    Что тут сложного-то? Никакой математики... почти. Тем более что алгоритм известный для гугла.

    [оффтоп]

    А это в школе задали или в ВУЗе?

    [/оффтоп]
     
  3. Ramakrishna

    Ramakrishna New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    6
    Адрес:
    Russia
    спасибо за цифры



    Что тут сложного-то? Никакой математики... почти. Тем более что алгоритм известный для гугла.

    Как ты думаешь, если бы я знал решение, я бы стал спрашивать? И про гугл я не в курсе тоже

    Спасибо
     
  4. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine


    Англосахоны называют их "pandigital numbers", но проще запомнить эти цифры для поиска в гугле, чем их официальное название.





    Так написано же в форме создания новой темы: "Перед тем как создать тему, прочти FAQ и сделай поиск."
     
  5. The Svin

    The Svin New Member

    Публикаций:
    0
    Регистрация:
    6 июл 2003
    Сообщения:
    665
    Адрес:
    Russia
    А я алгоритма не увидел :) Только результаты.

    Может просто начать с того что объяснить, что это перестановки (сколько их будет - напомнить про факториалы) и как перестановки перебирать. А десятичные цифры - типа частный случай. Тогда поучится смогут на примере.Quantum ты вроде преподавал где-то или мне это приснилось?
     
  6. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    The Svin



    А я его и не приводил. В данном случае не так просто составить эффективный запрос для поисковика. "Результаты", то бишь числа - это подсказка была.





    Этот частный случай весьма популярен на олимпиадах по программированию, в задачниках по всевозможным алгоритмическим предметам.





    Почему преподавал? Меня ещё не уволили. Тьфу-тьфу.



    ЗЫ: Чтоб перестановки делать в коде, вероятно, придётся использовать массив десятичных байт, типа BCD.
     
  7. The Svin

    The Svin New Member

    Публикаций:
    0
    Регистрация:
    6 июл 2003
    Сообщения:
    665
    Адрес:
    Russia


    :)

    Понятно.

    Ну если лень объяснять... Ramakrishna

    Задача сводится к перебору всех перестановок из 10 элементов. В данном случае элементами будут сами цифры.

    Количество перестановок будет равно 10! (1*2*3*...*10)

    Например она бы решалась так же как задача сколькими способами и как можно переставить тома собрания сочинений из 10 книг.

    посмотри Knuth "Generating all permutations"

    Можно взять с его сайта. fasc2b.ps.