离散数学计算笛卡尔乘积C或C语言实验报告
离散数学实验报告
专业班级:12级计算机本部一班 姓名:鲍佳珍
学号: 201212201401016 实验成绩:
1.【实验题目】
通过编程实现求给定集合A和B的笛卡儿乘积C(C=A×B)的运算。
2.【实验目的】
已知所给集合A和B,求A与B的笛卡儿乘积C(C=A×B)。
假设集合A={1,2,3,4,5},集合B={2,3,8,9,10},
3、实验原理与实现过程
笛卡儿集合:设A,B是两个集合,称集合A×B={|(x∈A)∧(y∈B)}为集合A与B的笛卡儿积。换句话说,笛卡儿乘积是以有序偶为元素组成的集合,它的定义为C={|x∈A∧y∈B}。所以,欲求笛卡儿乘积。只需取尽由集合A的元素及集合B的元素,并构成序偶送入C之中即可。
算法描述:。
将集合A的元素个数送入N。
将集合B的元素个数送入M。
1i。
若i>N,则结束。
1j。
若j>M,则转(9)。
C。
j+1j,转(6)。
i+1i,转(4)。
4、C或C++语言编程实现
将实验内容与结果按实验报告格式要求填写并上传。
5. 【算法描述】
1.实验原理
真值表:表征逻辑事件输入和输出之间全部可能状态的表格。列出命题公式真假值的表。通常以1表示真,0 表示假。命题公式的取值由组成命题公式的命题变元的取值和命题联结词决定,命题联结词的真值表给出了真假值的算法。 真值表是在逻辑中使用的一类数学表,用来确定一个表达式是否为真或有效。
2.实验过程
首先是输入一个合理的式子,生成相应真值表,然后用函数运算,输出结果:要求可生成逻辑非、合取、析取、蕴含、双条件表达式的真值表,例如:
输入 !a
输出真值表如下:
a !a
1
0
输入a&&b
输出真值表如下:
a b a&&b
0 0 0
0 1 0
1 0 0
1 1 1
输入a||b
输出真值表如下:
a b a||b
0 0 0
0 1 1
1 0 1
1 1 1
输入a->b
输出真值表如下:
a b a->b
0 0 1
0 1 1
1 0 0
1 1 1
输入a<>b (其中<>表示双条件)
输出真值表如下:
a b a<>b
0 0 1
0 1 0
1 0 0
1 1 1
【源程序(带注释)】
#include
#include
int main()
{
int i,j,m,n,k;
int a[30],b[30];
printf(“欢迎使用”);
printf(“请输入集合A的元素个数:”);
scanf(“%d”,&m);
printf(“请输入集合B的元素个数:”);
scanf(“%d”,&n);
cout<
for(i=0;i
{
printf(“请输入集合A的第%d个数:”,i+1);
scanf(“%d”,&a[i]);
} //输入集合A的元素
cout<
for(j=0;j
{
printf(“请输入集合B的第%d个数:”,j+1); //输入集合B的元素
scanf(“%d”,&b[j]);
}
k=0;
printf(“c={“);
for(i=0;i
for(j=0;j
printf(“”,a[i],b[j]);
k++;
}
} //输出最后结果
printf(“}\n”);
return 0;
}
【实验结果与分析总结(含运行结果截图)】