- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
离散数学关系的英文报告
离散数学实验报告
班级:网络工程101班
学号:20100831291
姓名:虞增勇
(1).伪代码描述:
是否自反 :
1. 逐个查找对角元素.
1.1.如果当前元素为1,则计数器加1.
2.2.否则计数器的值不变.
2.重复以上的步骤。
3. 判断计数器.
3.1 如果计数器的值等于矩阵的阶数,则为自反的.
3.2 如果计数器的值等于0,则为反自反的.
3.3 如果计数器的值既不是0也不等于矩阵的阶数,则此关系既不是自反的也不是反自反的.
是否对称 :
1. 设置三个标志位分别为flaga,flagb,flagc,并全部初始化为0.
2. 逐个查找元素.
2.1.如果 R[i][j] 不等于 R[j][i],flaga = 1.
2.2.否则,如果 R[i][j] 等于 R[j][i],并且i != j.
2.2.1. 如果 R[i][j] = 1,flagb = 1.
2.2.2. 如果 R[i][j] = 0,flagc = 1.
3.判断 flaga,flagb 和 flagc.
3.1.如果flaga = 1 且 flagb = 0 且 flagc = 1,则此关系是反对称的不是对称的.
3.2.如果flaga = 0 且 flagb = 1 且 flagc = 1,则此关系是对称的不是反对称的。
3.3.如果flaga = 0 且 flagb = 0 且 flagc = 1,则此关系既是对称的又是反对称的。
3.4.如果flaga =1 且 flagb = 1 则此关系既不是对称的也不是反对称的。
是否传递:
1. 初始化计数器sum 为0 和 初始化标志位 flag 为1.
2. 逐个计算矩阵R平方(即M)中的元素,其M[i][j]的值记为sum.
3. 如果sum = 1 且 R[i][j] = 0,则flag = 0.
4. 判断flag.
4.1. 如果 flag = 1,这个关系是传递的.
4.2. 否则不是传递的.
代码描述:
类:
class Relation
{
public:
Relation(){ //初始化标志位.
flag2 = 0;
flaga = 0;
flagb = 0;
flagc = 0;
}
bool set(int n); //初始化矩阵,n是矩阵的阶数
int Reflexive(); //判断是否自反.
int m;
void Symmetry(); //J判断是否对称.
void Menu(); //显示操作菜单.
void Select(); //选择操作
int Transmit(); //判断传递
private:
int R[100][100]; //表示矩阵的数组
int flag; //判断是否传递的标志.
int flag2; //以下是判断是否对称的标志.
int flaga;
int flagb;
int flagc;
};
判断是否自反 :
int Relation::Reflexive()
{
int count=0; //初始化计数器.
int i;
for(i = 0; i m; i++)
{
if(R[i][i] == 1) //当前元素是1 计数器加1.
{
count++;
}
}
return count; //返回计数器以判断.
}
是否对称:
void Relation::Symmetry()
{
int i,j;
for(i = 0; i m; i++)
{
for(j = i; j m; j++)
{
if(R[i][j]!=R[j][i]) //如果 R[i][j] 不等于 R[j][i], flaga1 = 1.
{
flaga=1;
}
else // 如果 R[i][j] 等于 R[j][i] 并且 i 不等于 j .
if(i != j)
文档评论(0)