年会抽奖 | 您所在的位置:网站首页 › java抽奖程序抽到的人不能重复抽奖 › 年会抽奖 |
今年公司年会的奖品特别给力,但获奖的规矩却很奇葩: 1. 首先,所有人员都将一张写有自己名字的字条放入抽奖箱中; 2. 待所有字条加入完毕,每人从箱中取一个字条; 3. 如果抽到的字条上写的就是自己的名字,那么“恭喜你,中奖了!” 现在告诉你参加晚会的人数,请你计算有多少概率会出现无人获奖? 输出描述:对应每一组数据,以“xx.xx%”的格式输出发生无人获奖的概率。 重点:错排 错排可以用下面两种方式计算: 1)公式: 2)递推:a1=0,a2=1,当n≥3时, 这个问题可以转化为排列组合的问题 思路:用满足条件的排列数/总的排列数。 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int n=sc.nextInt(); float n2=fib(n); float n1=sum(n); float num=(n1/n2)*100; System.out.printf("%.2f",num); System.out.println("%"); } } public static float fib(int n){ //所有情况 if(n==1){ return 1; } return n*fib(n-1); } public static float sum(int n){ //满足条件的 if(n==1){ return 0; } if(n==2){ return 1; } return (n-1)*(sum(n-1)+sum(n-2)); } }
|
CopyRight 2018-2019 实验室设备网 版权所有 |