zoukankan      html  css  js  c++  java
  • java实现分酒(泊松分酒)

    写在前面:
    泊松分酒:
    法国著名数学家波瓦松在青年时代研究过一个有趣的数学问题:假设某人有12品脱的啤酒一瓶,想从中倒出六品脱,但是恰巧身边没有6品脱的容器,仅有一个8品脱和一个5品脱的容器,怎样倒才能将啤酒分为两个6品脱呢?现在,请你设计一个程序,可以根据输入的满瓶容量(a),和两个空瓶的容量(b和c)对倒,获得最终需要的容量(d)。
    上周考笔试,有道题可能出现,想了N久也不会。最后考试中虽然没考它,但是突然就想明白了。
    Java代码 复制代码 收藏代码
    1. /**  
    2.  * @discription 酒瓶是8升酒,有两个杯,分别为3升和5升,现在想得到两杯4升的酒。  
    3.  * 肿么分这瓶酒啊?  
    4.  */  
    5. void text(){   
    6.     fenjiu(8,5,3,4);   
    7.                fenjiu(12,8,5,6);   
    8. }  

    Java代码 复制代码 收藏代码
    1. /***  
    2.  * 倒酒方法  
    3.  * @param i 盛酒  
    4.  * @param j 倒酒  
    5.  * @param wine 三个容器中酒量的数组  
    6.  * @param cup 酒瓶和两个杯子容量的数组  
    7.  * @param sunxu 酒瓶和两个杯子顺序的数组  
    8.  * @param N 循环次数  
    9.  * @param d 要得到的酒量  
    10.  * @return  
    11.  */  
    12. int daoba(int i,int j,int[]wine,int[]cup,int[]sunxu,int N,int d){   
    13.     int k = 3-i-j;   
    14.     if(wine[k]==0&&wine[i]!=0&&(wine[i]<cup[k]||wine[i]==cup[k])){   
    15.         wine[k]=wine[i];   
    16.         wine[i]=0;   
    17.         System.out.println("第"+sunxu[i]+"杯"+"倒, 第"+sunxu[k]+"杯");   
    18.         System.out.println(wine[0]+" "+wine[1]+" "+wine[2]);   
    19.     }   
    20.     System.out.println("第"+sunxu[j]+"杯"+"到, 第"+sunxu[i]+"杯");   
    21.     //第一杯不接满,第二杯倒空   
    22.     if(wine[j]+wine[i]<cup[i]){   
    23.         wine[i]+=wine[j];   
    24.         wine[j]=0;   
    25.         System.out.println(wine[0]+" "+wine[1]+" "+wine[2]);   
    26.         if(wine[i]==d&&wine[k]==d){   
    27.             N=1000;   
    28.             return N;   
    29.         }   
    30.     //第一杯接满,第二杯不到空   
    31.     }else if(wine[j]-cup[i]+wine[i]>0){   
    32.            
    33.         wine[j]=wine[j]-cup[i]+wine[i];   
    34.         wine[i]=cup[i];   
    35.         System.out.println(wine[0]+" "+wine[1]+" "+wine[2]);   
    36.         if(wine[k]==d&&wine[j]==d){   
    37.             N=1000;   
    38.             return N;   
    39.         }   
    40.         //第一杯接满,第二杯倒空      
    41.     }else if(wine[j]+wine[i]==cup[i]){   
    42.         wine[i]=cup[i];   
    43.         wine[j]=0;   
    44.         System.out.println(wine[0]+" "+wine[1]+" "+wine[2]);   
    45.            
    46.     }   
    47.        
    48.     return N;   
    49. }  
  • 相关阅读:
    Oracle简述
    如何用jQuery实现五星好评
    Java中的集合概述
    js关卡函数,throat函数实现,定时运行函数
    js图的数据结构处理----普里姆算法
    js图的数据结构处理---弗洛伊德算法
    js图的数据结构处理---迪杰斯特拉算法
    js图的数据结构处理----邻链表,广度优先搜索,最小路径,深度优先搜索,探索时间拓扑
    js树形结构-----(BST)二叉树增删查
    js模拟散列
  • 原文地址:https://www.cnblogs.com/bjanzhuo/p/3576023.html
Copyright © 2011-2022 走看看