问一道排列组合题 一组数据 随机选四个数组成四元组,请问总共有多少个偶排列,数组例如(±1.6,±1,±0.6,0) 七选四
3条回答 默认 最新
- 丵鹰 2015-07-03 08:01关注
840-------偶排列数:420
程序
public class test {
static void f(double[] a,int n,String v){ if(n==a.length){ System.out.println(v); }else{ f(a,n+1,v+","+a[n]); } } static int nxs(double[] arr1){ int a=0; for (int i = 0; i < arr1.length; i++) { for (int j = i+1; j < arr1.length-1; j++) { if(arr1[i]>arr1[j]){ a+=1; } } } return a; } static void printf(){ double[] arr = { 1.6, 1, 0.6, 0, -0.6, -1, -1.6 }; int a=0; int b=0; for(int i=0;i<7;i++){ for(int j=0;j<7;j++){ for(int m=0;m<7;m++){ for(int n=0;n<7;n++){ if(i!=j && i!=m && i!=n && j!=m && j!=n && m!=n){ System.out.printf(arr[i]+"---"+arr[j]+"---"+arr[m]+"---"+arr[n]+"---"+"\n"+i+"---"+j+"---"+m+"---"+n+"---"+"\n"); ++a; double[] arr1=new double[4]; arr1[0]=arr[i]; arr1[1]=arr[j]; arr1[2]=arr[m]; arr1[3]=arr[n]; int nxs=nxs(arr1); if(nxs%2==0){ ++b; } } } } } } System.out.println(a+"-------"+"偶排列数:"+b); } public static void main(String[] args) { printf(); }
}
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 oracle集群安装出bug
- ¥15 关于#python#的问题:自动化测试
- ¥15 教务系统账号被盗号如何追溯设备
- ¥20 delta降尺度方法,未来数据怎么降尺度
- ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
- ¥15 再不同版本的系统上,TCP传输速度不一致
- ¥15 高德地图点聚合中Marker的位置无法实时更新
- ¥15 DIFY API Endpoint 问题。
- ¥20 sub地址DHCP问题
- ¥15 delta降尺度计算的一些细节,有偿