离散数学编程作业:输出n元集合的所有划分或幂集元素

news/2025/1/21 9:48:06/

编程题目(二选一):

  1. 打印输出n元(n=1,2,3,4,5,6)集合的所有划分。
  2. 打印输出n元(n=1,2,3,4,5,6)集合的幂集中的所有元素。

编程内容及要求(二选一):

  1. 编写程序,打印输出n元(n=1,2,3,4,5,6)集合的所有划分。
  2. 编写程序,打印输出n元(n=1,2,3,4,5,6)集合的幂集中的所有元素。

编程语言可选择C、C++、Java或Python。

划分输出格式示例:

------------------

n=2, A={1,2}

------------------

{{1},{2}}

{{1,2}}

------------------

幂集元素输出格式示例:

------------------

n=2, A={1,2}

------------------

{}

{1}

{2}

{1,2}

------------------

编程目的:学会用程序语言实现基本的排列组合枚举和数据集合的操作。

编程语言:

C++

程序设计简要描述:

  1. 储存结构:先用整型变量n来储存用户输入的值。然后创建含有n个元素的整型数组即集合A。
  2. 主要算法:由于含有n个元素的集合有2^n个子集,即每个元素都有取和不取两个可能。故将A中元素内容设置为n位的二进制序列,下标索引为i的元素若为1则子集中含有元素i+1;若为0则不含有该元素。让后根据得到的二进制序列向set.txt输出子集。
  3. 输入与输出的实现:用整型n储存用户输入(std::cin>>n),格式化输出n的值和A集合及它的子集到set.txt中。

输出的字符文件set.txt内容(粘贴):

-------------------------------
n = 3	A = {1,2,3}
-------------------------------
{}
{3}
{2}
{2,3}
{1}
{1,3}
{1,2}
{1,2,3}

源程序代码:

#include<fstream>
#include<iostream>
#define MAX 100
using namespace std;
int main() {fstream f;f.open("set.txt", ios::out);int arr[MAX] = { 0 };int n = 0;cin >> n;int t = n;int c = n;bool flag = 0;f << "-------------------------------" <<endl << "n = " << n << '\t' << "A = {";for (int i = 0; i < n; i++){if (flag == 1)f << ',';f << i + 1;flag = 1;}f << '}' << endl;f << "-------------------------------" << endl;for (int i = 0; i < pow(2, n); i++)    //A共有2^n个子集{for (int f = 0; f < n; f++)        //将数组归零{arr[f] = 0;}t = n;                             //t来索引c = i;							   //c来求出i的二进制序列while (c > 0){arr[t - 1] = c % 2;c = c / 2;t--;}flag = 0;                          //最后一个元素不带逗号f << '{';for (int i = 0; i < n; i++){if (arr[i] == 1)               //根据二进制序列输出对应子集{if (flag == 1)f << ',';f << i + 1;flag = 1;}elsecontinue;}f << '}';f << endl;}f.close();return 0;
}


http://www.ppmy.cn/news/334593.html

相关文章

【0基础自研记录】ESP32-CAM自制个人网络监控

目的&#xff1a;实现一个小型家庭监控 一、前期准备 1.硬件准备 esp32-acm烧录板烧录线 2.软件准备 Arduion IDE CH340串口驱动 下载地址如下 Arduion IDE:https://www.arduino.cc/en/software CH340串口驱动 链接&#xff1a;https://pan.baidu.com/s/1ri8dK7wW6KFz8rOPs…

win10笔记本电脑键盘没反应是哪个键锁了

原因一、部分字母打出来是数字&#xff0c;导致打不出 1 FnNUMLOCK切换法 我们先按住【Fn键】&#xff08;Fn键一般在键盘的左下角&#xff09;&#xff0c;再按【Num Lk】&#xff08;Num Lk一般在右上角&#xff0c;F11键的上面&#xff0c;当然不同的笔记本所在位置有所不同…

联想拯救者y7000键盘有几个按键失灵_y7000p键盘失灵

以联想拯救者y7000p为例&#xff0c;键盘失灵是系统有问题&#xff0c;联想笔记本都带着一键还原功能&#xff0c;只要没有重新安装过系统。一键还原按钮在笔记本左侧或者右侧&#xff0c;是一个很细的孔&#xff0c;进行还原系统即可。 键盘(Keyboard)是用于操作设备运行的一种…

兄弟mfc7220打印没反应_设备操作面板按键无反应

相关型号 DCP-110C, DCP-115C, DCP-120C, DCP-130C, DCP-145C, DCP-155C, DCP-165C, DCP-185C, DCP-330C, DCP-350C, DCP-385C, DCP-540CN, DCP-560CN, DCP-585CW, DCP-6690CW, DCP-7010, DCP-7025, DCP-7030, DCP-7040, DCP-7055, DCP-7057, DCP-7060D, DCP-8060, DCP-8070D, …

联想G40-30进win10PE触摸板、键盘无反应

联想G40-30进win10PE触摸板、键盘无反应 顾客要求重装系统&#xff0c;进入win10触摸板、键盘无反应&#xff0c;外接键盘、鼠标同样问题。直接原装win10安装进入安装界面后同样问题。排除usb口冲突、bios放电。后发现BIOS最后一项改win8os即可。

Win10系统联想笔记本wifi和蓝牙无法打开的解决方法

Win10系统联想笔记本wifi和蓝牙无法打开的解决方法 自己的win10系统联想笔记本电脑中的蓝牙和wifi突然出现了无法打开的情况。电脑任务栏的WLAN处显示红叉&#xff0c;可是打开设备管理器&#xff0c;检查无线网卡驱动&#xff08;broadcom 802.11n 网络适配器&#xff09;却安…

联想小新14Pro Ubuntu20.04 键盘失灵

设备配置&#xff1a; 联想小新14ProUbuntu 20.04.1 问题&#xff1a; 触控板良好键盘失灵 解决办法 可以通过外接USB键盘方法解决可以按照下面的操作来恢复触控板功能 需要知道的信息&#xff1a; sudo vi /etc/default/grub 使用该条命令可以配置grub界面信息 GRUB_TIME…

拯救者Y7000系列 笔记本键盘点击 只响但是没有反应的问题

具体情况描述&#xff1a; 收拾东西的时候&#xff0c;把一堆衣服放在键盘上&#xff08;我用的买的键盘&#xff0c;不过应该都一样&#xff09;&#xff0c;等收拾完之后&#xff0c;发现自己的键盘敲击的时候只发出 一个响声&#xff08;点击的同时响一下&#xff0c;并不是…