Нужен оптимальнейший алгоритм перебора всех десятизначных чисел (в десятичной системе) в которых все цифры должны быть разными
0123456789 0123456798 0123456879 0123456987 0123456978 ... 9876543210 Что тут сложного-то? Никакой математики... почти. Тем более что алгоритм известный для гугла. [оффтоп] А это в школе задали или в ВУЗе? [/оффтоп]
спасибо за цифры Что тут сложного-то? Никакой математики... почти. Тем более что алгоритм известный для гугла. Как ты думаешь, если бы я знал решение, я бы стал спрашивать? И про гугл я не в курсе тоже Спасибо
Англосахоны называют их "pandigital numbers", но проще запомнить эти цифры для поиска в гугле, чем их официальное название. Так написано же в форме создания новой темы: "Перед тем как создать тему, прочти FAQ и сделай поиск."
А я алгоритма не увидел Только результаты. Может просто начать с того что объяснить, что это перестановки (сколько их будет - напомнить про факториалы) и как перестановки перебирать. А десятичные цифры - типа частный случай. Тогда поучится смогут на примере.Quantum ты вроде преподавал где-то или мне это приснилось?
The Svin А я его и не приводил. В данном случае не так просто составить эффективный запрос для поисковика. "Результаты", то бишь числа - это подсказка была. Этот частный случай весьма популярен на олимпиадах по программированию, в задачниках по всевозможным алгоритмическим предметам. Почему преподавал? Меня ещё не уволили. Тьфу-тьфу. ЗЫ: Чтоб перестановки делать в коде, вероятно, придётся использовать массив десятичных байт, типа BCD.
Понятно. Ну если лень объяснять... Ramakrishna Задача сводится к перебору всех перестановок из 10 элементов. В данном случае элементами будут сами цифры. Количество перестановок будет равно 10! (1*2*3*...*10) Например она бы решалась так же как задача сколькими способами и как можно переставить тома собрания сочинений из 10 книг. посмотри Knuth "Generating all permutations" Можно взять с его сайта. fasc2b.ps.