Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 10.02.2018
Сообщений: 13
1

Сочетание без повторений

10.02.2018, 21:37. Показов 6150. Ответов 7
Метки нет (Все метки)

Нужно вывести все возможные комбинации из 37 цифр без повторений. Тоисть необходимо что бы вывело все комбинации (по 6 цифр) из заданых 37 и что бы они не повторялись в одной комбинации.

вот то что есть
#include <iostream>
#include <algorithm>
#include <iomanip>
#include <functional>
#include <ctime>
using namespace std;

int main()
{
srand(time(0));
int arr[500000];
for (int i = 0; i<500000; i++)
{
arr[i] = 1+rand()%37;
if (i%6==0) cout<<endl;
cout<<setw(6)<<arr[i]<<" ";
}
sort(arr, arr+500000, greater<int>());
cout<<"\n***************\n"<<endl;
for (int i = 0; i<6; i++)
cout<<arr[i]<<" ";
cout<<endl;

system("pause");
return 0;
}






я не знаю точное количество возможных комбинаций поэтому взяла число наугад.
все работает,только числа в строчке повторяются...
ЗАРАНЕЕ СПАСИБО!)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2018, 21:37
Ответы с готовыми решениями:

Перестановки без повторений
Требуется дописать исключение повторений в коде,спасибо. #include &lt;iostream&gt; using namespace...

Перестановки без повторений
Как из этого кода сделать конфетку — чтобы не выводились повторения? #include &lt;iostream&gt; ...

Перестановка без повторений
Всем привет! У меня возникла небольшая проблема при написании программы, буду благодарна за любую...

Перестановки без повторений
привет помогите пожалуйста найти файлик в котором бы были все перестановки из 5 элементов. ...

7
115 / 83 / 43
Регистрация: 19.01.2018
Сообщений: 484
10.02.2018, 21:50 2
Цитата Сообщение от Katty1997 Посмотреть сообщение
все возможные комбинации из 37 цифр без повторений
Цитата Сообщение от Katty1997 Посмотреть сообщение
по 6 цифр
тоесть 1036 или что?
0
15 / 15 / 8
Регистрация: 01.10.2017
Сообщений: 97
10.02.2018, 21:54 3
сохраняй полученное значение в контейнер, к примеру в вектор и каждое последующее сравнивай с содержимым контейнера , если нет такого же то сохраняй в контейнере и, к примеру выводи на экран, если есть переходи к поиску следующего.

Добавлено через 1 минуту
RostikTawer,
чет я не прикинул кол-во возможных результатов )))
0
616 / 310 / 95
Регистрация: 09.02.2018
Сообщений: 712
10.02.2018, 22:02 4
Лучший ответ Сообщение было отмечено Katty1997 как решение

Решение

Списал с инета:
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
42
43
#include <iostream>
using namespace std;
bool NextSet(int *a, int n, int m)
{
  int k = m;
  for (int i = k - 1; i >= 0; --i)
    if (a[i] < n - k + i + 1) 
    {
      ++a[i];
      for (int j = i + 1; j < k; ++j)
        a[j] = a[j - 1] + 1;
      return true;
    }
  return false;
}
void Print(int *a, int n) 
{
  static int num = 1; 
  cout.width(3);
  cout << num++ << ": ";
  for (int i = 0; i < n; i++)
    cout << a[i] << " ";
  cout << endl;
}
int main() 
{
  int n, m, *a;
  cout << "N = ";
  cin >> n;
  cout << "M = ";
  cin >> m;
  a = new int[n];
  for (int i = 0; i < n; i++)
    a[i] = i + 1;
  Print(a, m);
  if (n >= m)
  {
    while (NextSet(a, n, m))
      Print(a, m);
  }
  system("pause");
  return 0;
}
Добавлено через 1 минуту
Но наборов 6 чисел из 37 очень много, устанешь ждать конца вывода!
1
0 / 0 / 0
Регистрация: 10.02.2018
Сообщений: 13
11.02.2018, 15:56  [ТС] 5
Спасибо огромное))

Добавлено через 17 часов 49 минут
Подскажите как теперь просмотреть полный результат по данному алгоритму?
Консоль прокручивается на пару тыс. строк.
0
298 / 207 / 174
Регистрация: 11.05.2016
Сообщений: 655
11.02.2018, 16:10 6
Цитата Сообщение от Katty1997 Посмотреть сообщение
Подскажите как теперь просмотреть полный результат по данному алгоритму?
Консоль прокручивается на пару тыс. строк.
выводите в файл
0
0 / 0 / 0
Регистрация: 10.02.2018
Сообщений: 13
11.02.2018, 17:06  [ТС] 7
Подскажите пожалуйста каким образом?
0
298 / 207 / 174
Регистрация: 11.05.2016
Сообщений: 655
11.02.2018, 17:41 8
Цитата Сообщение от Katty1997 Посмотреть сообщение
Подскажите пожалуйста каким образом?
К примеру:

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <fstream>
 
using namespace std;
bool NextSet(int *a, int n, int m)
{
  int k = m;
  for (int i = k - 1; i >= 0; --i)
    if (a[i] < n - k + i + 1) 
    {
      ++a[i];
      for (int j = i + 1; j < k; ++j)
        a[j] = a[j - 1] + 1;
      return true;
    }
  return false;
}
void Print(int *a, int n, ofstream &f) 
{
  static int num = 1; 
  cout.width(3);
  f << num++ << ": ";
  for (int i = 0; i < n; i++)
    f << a[i] << " ";
  f << endl;
}
int main() 
{
    int n = 0, m = 0, *a;
 
      cout << "N = ";
      cin >> n;
      cout << "M = ";
      cin >> m;
 
 
  if(n<m) return 0;
  
  a = new int[n];
 
  std::ofstream file("output.txt");
  if(file.is_open())
  {
 
      for (int i = 0; i < n; i++)
        a[i] = i + 1;
      Print(a, m, file);
      if (n >= m)
      {
        while (NextSet(a, n, m))
          Print(a, m, file);
      }
 
    file.close();
  }
  system("pause");
  return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.02.2018, 17:41

Рандом без повторений
Здравствуйте! Искал по форуме, но так и не нашел подходящее решение такой задачи: пользователь...

Перебор без повторений
текст задачи во вложении мой код: #include &lt;iostream&gt; using namespace std; int f(int v) { ...

Перестановка без повторений
Сгенерировать перестановку N чисел без повторений. Требуется использовать циклы. Функции пока не...

Последовательность чисел без повторений
Здравствуйте. Мне нужно сформировать последовательности,состоящие из нулей и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru