小编Kul*_*ibo的帖子

如何有效地检测4个整数变量的对称性?

我想找到4个整数变量对称性i,j,kl.对称性是:

  1. 所有四个数字相等:XXXX,
  2. 三个数字相等:XXXY,XXYX,XYXX,YXXX
  3. 两对相等的数字:XXYY,XYXY,XYYX,......
  4. 一对相等的数字和两个不同的数字:XXYZ,XYXZ,XYZX,......
  5. 所有数字都不同.

所有变量都在一定的非连续范围内运行.我使用嵌套的if else语句.第一个if检查所有变量的不等式.如果没有,那么我有案例1.下一个if检查是否有任何相等的对.如果没有,那么情况5.下一个if检查三个相等的数字.如果为真,则为情况2.否则,最后一个if检查两对相等的数字.如果是,则为案例3,否则为案例4.

  if(!(i==j && j==k && k==l)){
    if(i==j || i==k || i==l || j==k || j==l || k==l){
     if((i==j && j==k) || (i==j && j==l) || (i==k && k==l) || (j==k && k==l)){            ...//do something
     }else{
    if((i==j && k==l) || (i==k && j==l) || (i==l && j==k)){ 
...//do something
    }else{
     ...//do something
    }           
  }
     }else{
     ...//do something  
     } 
 }else{
  ...//do something
 }  
Run Code Online (Sandbox Code Playgroud)

这样做有更好的方法吗?我的意思是更好的表现,因为我必须进行数百万次的测试.

c c++ performance integer symmetry

4
推荐指数
2
解决办法
140
查看次数

标签 统计

c ×1

c++ ×1

integer ×1

performance ×1

symmetry ×1