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

Программа дискретная математика - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.63
Breaknoise
 Аватар для Breaknoise
0 / 0 / 0
Регистрация: 21.08.2011
Сообщений: 55
10.09.2011, 21:04     Программа дискретная математика #1
Вообщем такая задача: нужно написать программу, которая выводит на экран комбинации из 10ти элементов множества, тоесть "10!"
например:
А1={1}
A2={2}
A3={3}
A4={1,2}
A5={1,3}
и так для 10ти элементов, тоесть 3628802 комбинации
натолкните на мысль, с чего начать)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2011, 21:04     Программа дискретная математика
Посмотрите здесь:

Дискретная математика C++
Дискретная математика C++
C++ С++ и математика
Математика и С++ C++
C++ дискретная математика
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Breaknoise
 Аватар для Breaknoise
0 / 0 / 0
Регистрация: 21.08.2011
Сообщений: 55
17.09.2011, 09:14  [ТС]     Программа дискретная математика #21
Цитата Сообщение от alkagolik Посмотреть сообщение
выброси компьютер . юмор
не нравится

у меня такого файла тоже нету
ошибка вылетает после ввода значения в консоль. может на визуалку будет что-то по-другому?
когда нажимаю "пропустить" выводятся значения:
Миниатюры
Программа дискретная математика  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
17.09.2011, 16:36     Программа дискретная математика #22
Цитата Сообщение от Breaknoise Посмотреть сообщение
может на визуалку будет что-то по-другому?
честно говоря не знаю, но следуя здравому смыслу так быть не должно, язык - то один для всех ОС. Есть товарищи кто с VS работает, может подскажет кто чего.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
17.09.2011, 19:02     Программа дискретная математика #23
Смотрю никак задача не решена, я же в самом начале топика базовый алгоритм прописал Сформулируйте ЧЕТКО задачу, напишу разбиения на подмножества на чистом Си, думаю с компиляцией не возникнет проблем.

Добавлено через 5 минут
Держите вариант с вводимой строкой:

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
#include <stdio.h>
#include <string.h>
#define N 1000
 
void Print(char *a, int n)
{
   int i = 0;
   while (n)
   {
       if (n & 1)
          printf("%c ", a[i]);
       i++;
       n >>= 1;
   }
   printf("\n");
}
 
int main()
{
   int r, i;
   char a[N];
   puts("Enter a string:");
   scanf("%s", a);
   r = 1 << strlen(a);
   for (i = 0; i < r; i++)
      Print(a, i);
   return 0;
}
Breaknoise
 Аватар для Breaknoise
0 / 0 / 0
Регистрация: 21.08.2011
Сообщений: 55
21.09.2011, 22:30  [ТС]     Программа дискретная математика #24
Четкая задача:
Пользователь должен ввести значения через запятую от 1 до 10 значений включительно. Программа должна вывести все возможные комбинации этих значений.
Например: пользователь вводит значения "1", "2", "3".
На экране:
{1} {2} {3} {1,2} {1,3} {2,3} {1,2,3}
Breaknoise
 Аватар для Breaknoise
0 / 0 / 0
Регистрация: 21.08.2011
Сообщений: 55
21.09.2011, 22:36  [ТС]     Программа дискретная математика #25
Цитата Сообщение от Thinker Посмотреть сообщение
Смотрю никак задача не решена, я же в самом начале топика базовый алгоритм прописал Сформулируйте ЧЕТКО задачу, напишу разбиения на подмножества на чистом Си, думаю с компиляцией не возникнет проблем.

Добавлено через 5 минут
Держите вариант с вводимой строкой:

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
#include <stdio.h>
#include <string.h>
#define N 1000
 
void Print(char *a, int n)
{
   int i = 0;
   while (n)
   {
       if (n & 1)
          printf("%c ", a[i]);
       i++;
       n >>= 1;
   }
   printf("\n");
}
 
int main()
{
   int r, i;
   char a[N];
   puts("Enter a string:");
   scanf("%s", a);
   r = 1 << strlen(a);
   for (i = 0; i < r; i++)
      Print(a, i);
   return 0;
}
я, к сожалению, тут многое не понимаю.
Точнее это:
Print(), *а, printf, "%c ", puts(), strlen(), %s

я этих функций пока не учил и не знаю
выводит что-то непонятное:

Миниатюры
Программа дискретная математика  
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
21.09.2011, 23:48     Программа дискретная математика #26
Цитата Сообщение от Breaknoise Посмотреть сообщение
я этих функций пока не учил и не знаю
а ты вообще что-то читал? вроде как все книги начинаются с ввода\вывода (scanf()\printf()). Открой что - то по языку Си, и начни читать, а главное писать программы. функция Print() самописная, строки 5 - 16.
выводит что-то непонятное
выводит булеан множества {"a", " . ", "c"}. Если непонятна какая-то функция, копируешь ее, вставляешь в поисковик и вперед (если она стандартная)
Breaknoise
 Аватар для Breaknoise
0 / 0 / 0
Регистрация: 21.08.2011
Сообщений: 55
22.09.2011, 08:06  [ТС]     Программа дискретная математика #27
Цитата Сообщение от alkagolik Посмотреть сообщение
а ты вообще что-то читал? вроде как все книги начинаются с ввода\вывода (scanf()\printf()). Открой что - то по языку Си, и начни читать, а главное писать программы. функция Print() самописная, строки 5 - 16.

выводит булеан множества {"a", " . ", "c"}. Если непонятна какая-то функция, копируешь ее, вставляешь в поисковик и вперед (если она стандартная)
да, прочитал пол книжки Шилдт "C++. Руководство для начинающих"
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
22.09.2011, 15:41     Программа дискретная математика #28
Цитата Сообщение от Breaknoise Посмотреть сообщение
да, прочитал пол книжки Шилдт "C++. Руководство для начинающих"
тут программа на Си, перепиши ввод\вывод на с++. стандартные функции поищи в поиске и найдешь к ним описание. функция strlen() есть и в с++, ищи тут
lavengerl
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 77
04.12.2011, 21:58     Программа дискретная математика #29
Помогите сделать эту программу) Нужно на дискретную математику... Тут алгоритм нужен жестокий какой-то. Беспонятия как ее написать. Задача точно такая же как у автора.

Пользователь должен ввести значения через запятую от 1 до 10 значений включительно. Программа должна вывести все возможные комбинации этих значений.
Например: пользователь вводит значения "1", "2", "3".
На экране:
{1} {2} {3} {1,2} {1,3} {2,3} {1,2,3}
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
04.12.2011, 22:08     Программа дискретная математика #30
Достаточно ввести количество первых элементов из множества {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
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
#include<stdio.h>
#define N 10
 
void Print(int *a, int n)
{
   int i = 0;
   while (n)
   {
       if (n & 1)
          printf("%d ", a[i]);
       i++;
       n >>= 1;
   }
   putchar('\n');
}
 
int main()
{
   int n, r, i, a[N] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
   printf("n = ");
   scanf("%d", &n);
   r = 1 << n;
   for (i = 0; i < r; i++)
      Print(a, i);
    return 0;
}
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
04.12.2011, 22:14     Программа дискретная математика #31
А что значит
C++
1
n>>=1
и
C++
1
if(n&1)
?
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
04.12.2011, 22:16     Программа дискретная математика #32
n >>= 1 (целая часть при делении на 2, сдвиг всех бит на 1 позицию вправо)
n & 1 (значение последнего (младшего) бита числа n)
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
04.12.2011, 22:35     Программа дискретная математика #33
То есть, другими словами (в десятичной системе счисления)
C++
1
%10
?
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
04.12.2011, 22:39     Программа дискретная математика #34
Цитата Сообщение от AncinetHero Посмотреть сообщение
То есть, другими словами (в десятичной системе счисления)
C++
1
%10
?
В двоичной системе n&1 как n%10 в десятичной системе
lavengerl
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 77
04.12.2011, 23:02     Программа дискретная математика #35
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
#include<stdio.h>
#include<fstream>
#include<iostream>
#define N 15
using namespace std;
 ofstream File("ajaja.txt");
void Print(int *a, int n)
{
   cout<<"{";
   int i = 0;
   while (n)
   {
       if (n & 1)
          cout<<a[i]<<",";
          File<<a[i];
       i++;
       n >>= 1;
   }
   cout<<"}\n";
   File<<"\n";
}
 
int main()
{
    
   int n, r, i, a[N] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
   cout<<"n = ";
   cin>>n;
   r = 1 << n;
   for (i = 0; i < r; i++)
      Print(a, i);
    system("pause");
        return 0;
}
немножко хотел переделдать. Сделал чтобы в файл выводился весь результат, ато если 15-оазмерное множество, то в консоль даже его малая часть не влезет.
но в файл выводится какая-то ерунда. при том что выведение на экран и в файл идут рядом, на экране правильный результат, а в файле вот такоедля 4-х)

1
12
12
123
123
123
123
1234
1234
1234
1234
1234
1234
1234
1234
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
04.12.2011, 23:04     Программа дискретная математика #36
C++
1
2
3
4
5
if (n & 1)
{
          cout<<a[i]<<",";
                  File<<a[i];
}
lavengerl
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 77
04.12.2011, 23:11     Программа дискретная математика #37
Да недосмотрел, спасибо.
lavengerl
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 77
04.12.2011, 23:34     Программа дискретная математика #38
Еще 2 лабораторная, если можете помочь. Задача похожая, но нужно сделать разбитие не на комбинации как тут а на возможные подмножества, как вот на примере: Есть множество (1,2,3,4,5,6)
Миниатюры
Программа дискретная математика  
lavengerl
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 77
05.12.2011, 00:07     Программа дискретная математика #39
помогите плиз
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2011, 00:17     Программа дискретная математика
Еще ссылки по теме:

C++ Дискретная математика
C++ Дискретная математика. Класс-Группа:множество+бинарная операция
C++ Задачи на C/C++. Дискретная математика. Посоветуйте книги (сайты)

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

Или воспользуйтесь поиском по форуму:
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
05.12.2011, 00:17     Программа дискретная математика #40
пример на рисунке вы сами писали? спрашиваю потому что программы этого топика итак разбивают множество на подмножества. Покажите дословно задание.
Yandex
Объявления
05.12.2011, 00:17     Программа дискретная математика
Ответ Создать тему
Опции темы

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