求函数的逆元

要求源代码中给出求解过程和注释,不能直接输出结果。

设A={x|x属于R, x不等于0,1},在A上定义6个函数,

f1(x)=x,  f2(x)=x-1, f3(x)=1-x,

f4(x)=(1-x)-1, f5(x)=(x-1)x-1, f6(x)= x(x-1)-1,

*运算为函数的复合运算, 求函数的逆元。

 测试输入关于“测试输入”的帮助期待的输出关于“期待的输出”的帮助时间限制关于“时间限制”的帮助内存限制关于“内存限制”的帮助额外进程关于“{$a} 个额外进程”的帮助
测试用例 1以文本方式显示
  1. f2↵
以文本方式显示
  1. f2↵
1秒64M0
#include<iostream>  
using namespace std;  
int main(){  
    int func[6]={1,2,3,4,5,6};  
    //初始化函数字符串   
    int ct[6][6]={{1,2,3,4,5,6},  
                 {2,1,4,3,6,5},  
                 {3,5,1,6,2,4},  
                 {4,6,2,5,1,3},  
                 {5,3,6,1,4,2},  
                 {6,4,5,2,3,1}};  
    /* 
    将f1(x)=x,  f2(x)=x-1, f3(x)=1-x,f4(x)=(1-x)-1, f5(x)=(x-1)x-1, f6(x)= x(x-1)-1 
    编号为0-5,进行复合运算,得到二维运算表ct,其行标0-5、列标0-5分别代表 f1-f6  
    */  
    int uni=0,flag;  
    //寻找幺元  
    for(int k=0;k<6;++k)      
    {  
        flag=1;  
        //根据运算表行判断是否是左幺元   
        for(int i=0;i<6;++i)    
        {  
            for(int j=0;j<6;++j)  
            {  
                if(ct[i][j]!=func[i]) flag=0;  
            }  
        }    
        //根据运算表列判断是否是右幺元  
        for(int j=0;j<6;++j)    
        {  
            for(int i=0;i<6;++i)  
            {  
                if(ct[i][j]!=func[j]) flag=0;  
            }   
        }  
        //找到幺元  
        if(flag)   
        {  
            uni=k;  
            break;  
        }  
    }  
    char get[3];  
    scanf("%s",get);  
    int g=get[1]-'0'-1; //在函数字符串里找到输入函数的下标  
    //根据运算表寻找逆元,与get函数左右相乘的结果均为幺元的函数即为其逆元   
    for(int i=0;i<6;++i)  
    {  
        if(ct[g][i]==func[uni] && ct[i][g]==func[uni])  //若uni不初始化,gcc-3.3就会无效内存引用(gcc-4.8不会)  
        {  
            printf("f%d\n",i+1);  
            break;  
        }  
          
    }  
    //找到逆元  
    return 0;   
}  

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值