大家好,又见面了,我是你们的朋友全栈君。
题目:函数的判定
内容:判断任意一个关系是否为函数,若是函数,判定其是否为单射、满射或双射。
要求:
1、提供函数(f:A—>B)的输入接口;(输入包括集合A,集合B和具体的函数关系(序偶集));
2、对函数的性质进行判断(判断单射、满射和双射);
3、提供判断结果的输出。
代码:
#include<string.h>
#include<iostream>
using namespace std;
char *A,*B,*F;
int a,b,f;
int Judge(char *A,char*B,char*F){
int i,j,k;
for(i=1;i<a;i=i+2){
k=0;
for(j=2;j<f;j+=6){
if(F[j]==A[i])
k++;
}
if(k==0||k>1)
return 0;
}
return 1;
}
int ds(char*A,char*B,char*F){
int i,j;
for(i=4;i<b;i=i+6)
for(j=4;j<f;j=j+6)
if(F[i]==F[j]&&F[i-2]!=F[j-2])return 0;
return 1;
}
int ms(char*A,char*B,char*F){
int i,j;
for(i=1;i<b;i=i+2){
for(j=4;j<f;j=j+6)
if(F[j]==B[i])break;
if(j>f)return 0;
}
return 1;
}
int main(){
A=new char;
B=new char;
F=new char;
cout<<"输入集合A:"<<endl;
cin>>A;
cout<<"输入集合B:"<<endl;
cin>>B;
cout<<"输入A到B的关系:"<<endl;
cin>>F;
a=strlen(A);
b=strlen(B);
f=strlen(F);
cout<<"集合"<<A<<"到"<<B<<"的一个关系是:"<<F<<endl;
if(!Judge(A,B,F)){
cout<<"不满足函数定义!"<<endl;
}
else if(ds(A,B,F)&&ms(A,B,F)){
cout<<"此为双射!"<<endl;
}
else if(ds(A,B,F))cout<<"此为单射"<<endl;
else if(ms(A,B,F))cout<<"此为满射"<<endl;
else cout<<"二者皆不是!"<<endl;
return 0;
}
结果展示:
按照这个格式来输入就没啥问题的
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138505.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...