问题描述
5、某企业为了促销,搞抽奖宣传活动,奖品为新款手机一部,抽奖规则如下:(1)有n个盒子摆成一圈,盒子按顺时针方向依次编号为0,1,2,……,n-1。手机随机放在其中一个盒子中。(n为自然数)(2)从0号盒子开始摸奖,顺时针方向计数,每遇到第m个盒子就摸奖一次。(m为自然数,m<n)(3)直到重新摸到0号盒子为止。例如n=5,m=3,那么摸奖经过的盒子编号依次为0,3,1,4,2,0。请编写一个完整的程序,随机输入n,m(m<n),程序分析手机有没有不被抽中的机会?如果有,概率是多少?(概率=不被抽中的可能数/n)6、采用UDP协议,编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。客户端指定一个服务器上的文件名,让服务器发回该文件的内容,或者提示文件不存在。(服务端程序和客户端程序分别命名为Server.java和Client.java)
解决方案
解决方案二:
标记一下,等待高手
解决方案三:
服了!
解决方案四:
也许高手还可以吧
解决方案五:
等高手。。
解决方案六:
/*5、某企业为了促销,搞抽奖宣传活动,奖品为新款手机一部,抽奖规则如下:(1)有n个盒子摆成一圈,盒子按顺时针方向依次编号为0,1,2,……,n-1。手机随机放在其中一个盒子中。(n为自然数)(2)从0号盒子开始摸奖,顺时针方向计数,每遇到第m个盒子就摸奖一次。(m为自然数,m<n)(3)直到重新摸到0号盒子为止。例如n=5,m=3,那么摸奖经过的盒子编号依次为0,3,1,4,2,0。请编写一个完整的程序,随机输入n,m(m<n),程序分析手机有没有不被抽中的机会?如果有,概率是多少?(概率=不被抽中的可能数/n)(30分)*/importjava.util.Iterator;importjava.util.Scanner;classCircle{privateEntryheader=null;privateintsize=0;publicCircle(intcapacity){for(inti=0;i<capacity;++i)add();}privatevoidadd(){EntrynewEntry=newEntry(size++);if(header==null){header=newEntry;header.previous=header.next=header;}else{header.previous.next=newEntry;newEntry.previous=header.previous;header.previous=newEntry;newEntry.next=header;}}publicintsize(){returnsize;}publicIterator<Integer>circleIterator(){returnnewCircleIterator(header);}privateclassCircleIteratorimplementsIterator<Integer>{privateEntrycurrent;CircleIterator(Entrystart){current=start;}publicbooleanhasNext(){returncurrent!=null;}publicIntegernext(){if(hasNext()){intlabel=current.label;current=current.next;returnlabel;}returnnull;}publicvoidremove(){if(current!=null){Entrye=current.previous;if(e==header)header=e.next;e.next.previous=e.previous;e.previous.next=e.next;--size;}}}privatestaticclassEntry{intlabel;Entryprevious,next;Entry(intlabel){this.label=label;}}}publicclassTestQiye{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);System.out.println("entermandn");intn=Integer.parseInt(scanner.next()),m=Integer.parseInt(scanner.next());intcount=0;Circlecircle=newCircle(n);Iterator<Integer>iterator=circle.circleIterator();iterator.next();do{for(inti=1;i<m;++i)iterator.next();++count;}while(iterator.next().intValue()!=0);System.out.println(((double)(n-count))/n);}}
解决方案七:
先收藏了
解决方案八:
importjava.util.*;importjava.io.*;publicclassLinkedListTest{privatestaticLinkedList<Integer>list=newLinkedList<Integer>();publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intn=-1;intm=-1;try{n=sc.nextInt();m=sc.nextInt();System.out.println("n没摸到奖的概率是:"+circle(n,m));}catch(Exceptione){System.out.println("请输入两个整数");}}publicstaticdoublecircle(intn,intm){intcount=0;doubleresult=0;for(inti=0;i<n;i++){list.add(i);}Object[]box;box=list.toArray();inttmp=-1;intk=0;System.out.print(0+",");while(tmp!=0){k+=m;if(k>=box.length){k-=box.length;}tmp=(Integer)box[k];System.out.print(tmp+",");count++;}result=(double)(n-count)/n;returnresult;}}