Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
Галочка Громова
1 / 1 / 0
Регистрация: 10.02.2010
Сообщений: 36
#1

комбинаторика - C++

09.10.2010, 17:15. Просмотров 2122. Ответов 2
Метки нет (Все метки)

Здравствуйте! Я решаю задачи по дискретной математике на языке С.В интернете масса примеров задач на тему комбинаторики, но на языке паскаль (но я его вообще НЕ проходила)

пожалуйста, помогите спереводом задачи (с синтаксисом языка вообще не знакома ни со школы ни с универа)

Напишите программу, которая осуществляет перечисление всех (n, r) сочетаний без повторений.
С=n!/(r!(n-r)!)
Например, все (5,3) – сочетания без повторений: 123, 124, 125, 134, 135, 145, 234, 235, 245, 345. Таких сочетаний 10 = 5!/(3!2!).

совсем не знаю, как эти сочетания вывести



Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
program sochets;
var
  i, j, n, m: integer;
  a: array[0 .. 100] of integer;
 
{ процедура вывода текущего сочетания }
procedure use;
var i: integer;
begin
  writeln;
  for i:=1 to m do write(a[i]:3)
end;
 
begin
  write('ввод N и M: '); read(n, m);
 
  { формирование первого сочетания }
  for i:=0 to m do a[i]:=i;
 
  repeat
    use;
    i:=m;
    while a[i]=n-m+i do dec(i); { поиск элемента для изменения }
    inc(a[i]);
    for j:=i+1 to m do a[j]:=a[j-1]+1; { изменение правой части сочетания }
  until i=0;
end.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2010, 17:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос комбинаторика (C++):

Комбинаторика - C++
Здравствуйте все. В данный момент дпополнительно решил заняться комбинаторикой, столкнулся с задачей, и никак не могу её решить.Суть...

Комбинаторика - C++
От пользователя требуется ввести n. Результат должен быть таким:

Комбинаторика на С++ - C++
Нужно составить программу, или скорее функцию, которая для заданного натурального числа k выводит все возможные произведения k чисел с...

Комбинаторика - C++
Помогите написать алгоритм для вычисления количество непустых последовательностей из ряда чисел. Или кинте ссылочку, где почитать. Что я...

Комбинаторика - C++
Доброго всем времени суток!Помогите пожалуйста с решением такой задачи.Дана последовательность вещественных чисел.Пользователь вводит...

Комбинаторика style - C++
Здравствуйте, помогите разобраться с задачей по комбинаторике. Условие: http://codeforces.com/problemset/problem/630/F Решение: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,459
09.10.2010, 17:43 #2
Что ж ты так...
Если чё- меняq три вещи: два макроса и массив stroka
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#define kolichestvo_chisel 5
#define kolichestvo_drugih_chisel 3
 
void func_recurs (int nomer_funktsii, int nomer_elementa, int kol_ostavshihsa_chisel,  int* stroka, int* array) {
 
 
 
 
 for (int i= nomer_elementa; i< kolichestvo_chisel- kol_ostavshihsa_chisel+ 1; i++) {
 
  if (nomer_funktsii< kolichestvo_drugih_chisel- 1) {
   array [nomer_funktsii]= stroka [i];
   func_recurs (nomer_funktsii+ 1, i+ 1, kol_ostavshihsa_chisel- 1, stroka, array);
  }
 
  else {
   array [nomer_funktsii]= stroka [i];
   for (int i= 0; i< kolichestvo_drugih_chisel; i++)
    printf ("%d   ", array [i] );
    printf ("\n");
  }
 }
}
 
 
int main () {
 
 int stroka []= {1, 2, 3, 4, 5};
 int array [kolichestvo_drugih_chisel];
 func_recurs (0, 0, kolichestvo_drugih_chisel, stroka, array);
 
 
 getchar ();
 return 0;
}
1
Галочка Громова
1 / 1 / 0
Регистрация: 10.02.2010
Сообщений: 36
09.10.2010, 17:54  [ТС] #3
огромное спасибо, сейчас буду детально разбиаться
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2010, 17:54
Привет! Вот еще темы с ответами:

Перестановка.(Комбинаторика) - C++
Прошу помощи. Объясните пожалуйста тугодуму этот код. Какой день его пытаюсь понять. Не как не могу в нём разобраться. Вроде знаю как...

Комбинаторика в программировании - C++
есть алфавит длинны Х; длинна слова Y; написать код(лучше на с++) который будет составлять и выводить все возможные варианты слов. ...

Покерная комбинаторика - C++
Добрый день, форумчане. Рад возможности стать членом общества программистов. Я чайник на все 234%. Болею задачей создания покерной...

Комбинаторика. Сочетания - C++
Добрый день! Прошу помочь со следующей задачкой: генерация сочетания по номеру(порядок лексикографический). Толковое объяснение нашел...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru