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

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

Войти
Регистрация
Восстановить пароль
 
eXXXXXXXXXXX
30 / 30 / 3
Регистрация: 24.02.2011
Сообщений: 126
#1

необходимо каким-то образом пронумеровать все сочетания, никак не могу придумать алгоритм - C++

11.04.2011, 08:59. Просмотров 625. Ответов 2
Метки нет (Все метки)

Мне необходимо каким-то образом пронумеровать все сочетания, никак не могу придумать алгоритм. Например из 10 по 5 = 252, если нумеровать как число по основанию 10 то всего 10^5 вариантов, что очень много по сравнению с 252.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2011, 08:59     необходимо каким-то образом пронумеровать все сочетания, никак не могу придумать алгоритм
Посмотрите здесь:

Не могу придумать алгоритм - C++
В общем у меня есть переменные left = 'n'; top = 'n'; right = 'y'; down = 'y'; и нужно чтоб функция выбирала рандомно одну из...

Алгоритм быстрой сортировки. Каким образом меняются исходные индексы? - C++
del

Придумать алгоритм - C++
Есть такая задачка : в массиве из n элементов за время nlogn найти пару элементов , сумма которых равна k , или сказать , что такой нет . ...

Каким образом разархивировать gzip? - C++
Здравствуйте, имеется буфер (ответ сервера на запрос), заархивированный в gzip (в заголовке - Content-Encoding: gzip) Требуется его...

Каким образом легче выучить c++ - C++
Как легче понять и выучить язык с++

Каким образом реализуется квалификатор const? - C++
Каким образом реализуется квалификатор const? Хранится ли в памяти в процессе выполнения программы какая либо информация по этому...

Каким образом параметры передаются в функцию? - C++
Задумался над тем, каким образом параметры передаются в функцию. Т.е. как именно это происходит внутри, это уже на вопрос к тому, как...

Каким образом зашифровать Hex строки - C++
Интересует следующий вопрос, каким образом можно зашифровать hex строку в dll чтобы ее нельзя было расшифровать. Сам в прикладном...

Каким образом записать слеш в символьную переменную - C++
дело в том что таким '\' образом не катит компилятор ругается

Каким образом нормально считать с консоли строку? - C++
Дело в том что необходимо считывать строки вводимые с консоли. Но полноценно это не выходит. Ф-ция scanf() обеспечивает считывание только...

Каким образом компилировать код не си-подобных языков? - C++
Каким образом компилировать код не си подобных языков? Просто си я знаю можно скомпилировать в консоли например из текстового файла

Каким образом getchar() меняет содержимое массива? - C++
Здравствуйте! Почему-то наличие getchar(); в коде влияет на содержимое массива. Если данный код не менять - то выводит правильный...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
11.04.2011, 15:53     необходимо каким-то образом пронумеровать все сочетания, никак не могу придумать алгоритм #2
http://ru.wikipedia.org/wiki/Сочетание
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
11.04.2011, 17:42     необходимо каким-то образом пронумеровать все сочетания, никак не могу придумать алгоритм #3
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
37
38
39
40
41
#include <iostream>
#include <conio.h>
 
 
using namespace std;
 
int c(int n,int k)
{
    int ret=1;
    for(int i=k;i<n;i++)
        ret*=i+1;
    for(int i=1;i<k;i++)
        ret/=i;
    return ret;
}
 
int number(int n,int k,int* com)
{
    int num=1;
    for(int i=0;i<k;i++)
    {
        for(int j=i+1;j<com[i];j++)
        {
            num+= c(n-i-1,k-i);
        }
    }
 
    return num;
 
}
 
int main()
{
    int n,k;
    int com[] = {1,2,4};
 
    cout << number(4,3,com);
 
    _getch();
    return 0;
}
как то так.
Ответ Создать тему
Опции темы

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