Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2011, 12:09   #1
Kashim
Новичок
Джуниор
 
Регистрация: 08.01.2011
Сообщений: 2
По умолчанию Генератор

Кто нибудь помогите составить программу на Pascal которая бы составляла все возможные комбинации 11 - ти символьного слова из 26 латинских символов и сохраняла в отдельный txt файл. Ну или на каком другом языке программирования объясните мне я знаю только Pascal. Спасибо всем за внимание.
Kashim вне форума Ответить с цитированием
Старый 08.01.2011, 12:17   #2
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

вот генерация слова
Код:
for i:=1 to 11 do begin
  x:=random(27)+z;
  s:=s+chr(x);
end;
здесь z надо подобрать чтобы коды нужные были для тех букв из которых надо составлять слово.
невнимательно прочитал, тут все возможные оказывается.. а не генерировать 1 случайно), мой вариант не подходит
Есть вопросы, пишите в ЛС.

Последний раз редактировалось rubius2008; 08.01.2011 в 14:15.
rubius2008 вне форума Ответить с цитированием
Старый 08.01.2011, 13:02   #3
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Код:
procedure word(const word: string; level: integer);
var
  c: char;
begin
  for c := 'a' to 'z' do
    if (1 = level) then
      saveToFile(word + c)
    else
      word(word + c, level -1);
end;
вызывать так:

Код:
word('', 11);
Процедура saveToFile(const word: string) сохраняет переданное слово в файл.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 08.01.2011, 14:31   #4
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Delphi
Код:
begin
            Append(txt);
            randomize;
                repeat
                  write(txt, sym[Random(c2) + 1]);   //sym - массив символов из которых составлять, с2 - количество символов в массиве
                  c := c + 1;
                  Application.ProcessMessages;
                until c = dl;   //dl - длинна слова
            Writeln(txt, '');
            CloseFile(txt);
end;

Последний раз редактировалось unbanned; 08.01.2011 в 14:47.
unbanned вне форума Ответить с цитированием
Старый 08.01.2011, 15:56   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) господа rubius2008 и unbanned, садитесь, не зачёт!
Правильный вариант (рекурсивное решение) предложил veniside.
Ведь автору требуется не случайным образом получить вариант,
а "программу, которая составляла все возможные комбинации "...

2) Kashim, а Вы знаете, сколько это вариантов?
согласно онлайн калькулятору:
число сочетаний 11 из 26 составляет 7 726 160
(*13 (11 символов + 2 перевод строки) ~ 100 440 080 байт (т.е. примерно 100 мб)
нормально, не многовато?
Неверно! ЧИСЛО смотри ниже!

Последний раз редактировалось Serge_Bliznykov; 08.01.2011 в 16:30.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.01.2011, 16:16   #6
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Цитата:
число сочетаний 11 из 26 составляет 7 726 160
Ну сочетаний может быть и столько, но только здесь кажись нужны размещения ( с повторениями), то бишь 26^11, что равно 3 670 344 486 987 776 так что файл получается значительно больше, хотя и 100 метров для текстовика много
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.

Последний раз редактировалось Niro; 08.01.2011 в 16:18.
Niro вне форума Ответить с цитированием
Старый 08.01.2011, 16:28   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Niro точно. правда Ваша!
Сам сообразил, что ошибся. Ну не может быть такое маленькое число быть.
И верно. Тут не сочетания нужны (в сочетаниях порядок не важен, главное, какие элементы взяты)

В данном случае нужно брать Число размещений из 26 по 11. = 3.08403583488E+14
*13
примерно получаем:
Четыре квадриллиона девять триллионов двести сорок шесть миллиардов пятьсот восемьдесят пять миллионов триста сорок четыре тысячи
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.01.2011, 18:17   #8
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Четыре квадриллиона девять триллионов двести сорок шесть миллиардов пятьсот восемьдесят пять миллионов триста сорок четыре тысячи


Походу, задача на то, где добыть денег на такой винт.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 08.01.2011, 19:15   #9
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

омг... ну да, незачет явный)) просто задание бегло проглядел
unbanned вне форума Ответить с цитированием
Старый 10.01.2011, 18:11   #10
Kashim
Новичок
Джуниор
 
Регистрация: 08.01.2011
Сообщений: 2
По умолчанию

Привет всем снова! Я знаю какое это число получается, да конечно это невероятно много 12 символьному слову будет еще больше. Так что же делать. Это не задача это просьба. Кто нибудь способен выполнить её? И если вам так важна истина это словарь паролей на 11 символов. А сохранить можно куда и побольше на пример в .DOC. Ну да ладно не ужели на сайте программистов не могут составить достаточно, в каком-то смысле простую задачку? Не смешите меня. К сожалению я хреновенько знаю программирование. порыскал и нашел сайт где черным по белому написано ФОРУМ ПРОГРАМмИСТОВ, А на самом деле?!
Kashim вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
генератор sasha_prof Microsoft Office Excel 5 16.12.2010 11:42
Генератор Treshmazai Помощь студентам 0 08.05.2010 13:26
Генератор?? Нестер Софт 5 10.07.2008 13:32
Генератор warlok Общие вопросы Delphi 3 30.05.2008 00:53