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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2012, 18:32   #1
-=zAA=-
Пользователь
 
Регистрация: 03.10.2011
Сообщений: 11
По умолчанию генератор чисел

Ребят помогите с составлением алгоритма, в общем есть массив чисел от 1 до 36 из этих чисел нужно составить всевозможные комбинации по 5 чисел, при условии что числа не повторяются, т.е. 5, 6, 7, 9, 1 -можно , а 5, 6, 5, 1, 3 - нельзя, ну и вывести все комбинации в файл.
Глупый с мудрой книгой, в два раза глупее.
-=zAA=- вне форума Ответить с цитированием
Старый 15.08.2012, 19:53   #2
Artem_Kokos
Форумчанин
 
Регистрация: 28.02.2011
Сообщений: 122
По умолчанию

Как-то не совсем понятно. То есть нужно, чтобы в самом числе цифры не повторялись? И еще, если так, то почему нужно чтобы было по пять цифр, а в массиве числа от 1 до 36?! Или я чего-то не понял...
Повторенье - мать ученья. И прибежище для лентяев.
Artem_Kokos вне форума Ответить с цитированием
Старый 15.08.2012, 19:58   #3
-=zAA=-
Пользователь
 
Регистрация: 03.10.2011
Сообщений: 11
По умолчанию

да в самом числе цифры не должны повторяться. Друг любитель сыграть в спортлото, попросил написать ему генератор всевозможных комбинаций.
Глупый с мудрой книгой, в два раза глупее.
-=zAA=- вне форума Ответить с цитированием
Старый 15.08.2012, 20:18   #4
Artem_Kokos
Форумчанин
 
Регистрация: 28.02.2011
Сообщений: 122
По умолчанию

Аа, как же я сразу не понял, да и тупанул че-то =) Можно сначала составить вообще все возможные комбинации, то есть берем сначала например 1, 1, 1, 1, 1 и к последней прибавляем +1 до 36, записывая результат. затем добавляем 1 к предпоследнему т.с. "разряду" и то же самое: 1, 1, 1, 2, 1 и т.д. А потом выбрать из этого списка те, в которых нет повторяющихся чисел. Это видимо чисто сугубо ламерский способ, зато без использования мозга ))
Повторенье - мать ученья. И прибежище для лентяев.
Artem_Kokos вне форума Ответить с цитированием
Старый 15.08.2012, 20:20   #5
Artem_Kokos
Форумчанин
 
Регистрация: 28.02.2011
Сообщений: 122
По умолчанию

Но это будет весьма много комбинаций. А друг твой, видимо, решил таки выйграть приобретя билетов на все возможные комбинации =) Глупая затея, после траты на это средств, выйгрышь не окупит их, там ведь тоже не дураки сидят =)
Повторенье - мать ученья. И прибежище для лентяев.
Artem_Kokos вне форума Ответить с цитированием
Старый 15.08.2012, 20:23   #6
-=zAA=-
Пользователь
 
Регистрация: 03.10.2011
Сообщений: 11
По умолчанию

ну меня сама программа заинтересовала, уже сам додумался как что сделать, а комбинаций не так-уж и много выйдет
Глупый с мудрой книгой, в два раза глупее.
-=zAA=- вне форума Ответить с цитированием
Старый 15.08.2012, 23:09   #7
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Комбинаций будет всего ничего - с повторами всего 36 ^ 5 == 60 миллионов с копейками. Мне интересно другое - важна ли очередность чисел или 5 и 1 это тоже что и 1 и 5 ибо тогда встанет и условие, что цифры должны быть в восходящем порядке а это сильно уменьшит количество комбинаций.
waleri вне форума Ответить с цитированием
Старый 16.08.2012, 20:56   #8
Artem_Kokos
Форумчанин
 
Регистрация: 28.02.2011
Сообщений: 122
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Комбинаций будет всего ничего - с повторами всего 36 ^ 5 == 60 миллионов с копейками. Мне интересно другое - важна ли очередность чисел или 5 и 1 это тоже что и 1 и 5 ибо тогда встанет и условие, что цифры должны быть в восходящем порядке а это сильно уменьшит количество комбинаций.

А ведь верно
Повторенье - мать ученья. И прибежище для лентяев.
Artem_Kokos вне форума Ответить с цитированием
Старый 16.08.2012, 21:30   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  min = 1; {min>=0}
  max = 36; {max<=255}
  count = 5;

type
  set1 = set of min..max;

var
  num: set1;
  k: byte;

procedure createstring(var num: set1; s: string);
var
  i: byte;
begin
  if k = 0 then writeln(s)
  else
    for i := min to max do
      if not (i in num) then
      begin
        dec(k);
        num := num + [i];
        if k = count - 1 then
          createstring(num, inttostr(i))
        else
          createstring(num, s + ' ' + inttostr(i));
        num := num - [i];
        inc(k);
      end;
end;

begin
  num := [];
  k := count;
  assign(output, '1.txt');
  createstring(num, '');
end.
Вот такая вот программка, написанная на коленке.
Проверить выданный файл не могу
636 мб текста.
Повторов быть не должно.

ПС
waleri, проверить не могу, т.к. ничем не открывается такой огромный файл
(чисто математически, он занимает как раз правильно, т.к. если бы были повторы, тогда бы ~850 мб занимал)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 17.08.2012 в 00:07.
BDA вне форума Ответить с цитированием
Старый 16.08.2012, 23:01   #10
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Ну так подсчитайте сколько должно быть вариантов без повторов и потом проверьте количество строк в файле - должно быть тем же самым

Ну а если в вашей операционке есть sort и uniq можно проверить будут ли равное количество строк в изходном и полученом файлах
waleri вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генератор случайных чисел Evgenii(Евгений) Помощь студентам 6 23.01.2011 22:41
C++ генератор чисел proteo Помощь студентам 0 28.11.2010 20:33
Генератор чисел MDS Помощь студентам 0 07.04.2010 19:38
генератор чисел Пифагора Майк... Помощь студентам 7 29.04.2009 14:04
Генератор чисел. TheWanderer Общие вопросы C/C++ 13 16.10.2008 16:49