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

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

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

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

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

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

Придумать алгоритм C++
C++ Не могу придумать алгоритм
C++ Каким образом getchar() меняет содержимое массива?
C++ Каким образом записать слеш в символьную переменную
C++ Каким образом зашифровать Hex строки
Каким образом идет поиск слов в кавычках? C++
Каким образом программа определяет эффективный угол? C++
Каким образом реализуется квалификатор const? C++
C++ Каким образом пройдёт передача параметров в функцию
Каким образом разархивировать gzip? C++
C++ Каким образом параметры передаются в функцию?
Каким образом легче выучить c++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
4932 / 2512 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 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;
}
как то так.
Yandex
Объявления
11.04.2011, 17:42     необходимо каким-то образом пронумеровать все сочетания, никак не могу придумать алгоритм
Ответ Создать тему
Опции темы

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