问题描述
有两组数据分别放在两个list里,例如数据A为:{12,33,23,33},数据B为{'233e','w4rrr','erff','dffdd','3eee'}在页面上有一个按钮,点击按钮时随机从一个数组中随机抽取一个数据显示到页面上.要求:从A数据组取出数据的概率是十分之一,即点按钮10次,只有一次从A数据组中取,另九次从B数据组中取,请问怎么实现?
解决方案
解决方案二:
publicObjectget(Listlist1,Listlist2){Randomr=newRandom();if(r.nextInt(10)<1){returnlist1==null&&list1.size()==0?null:list1.get(r.nextInt(list1.size()));}else{returnlist2==null&&list2.size()==0?null:list2.get(r.nextInt(list2.size()));}}
概率只能说是很多次点击之后统计的规律,而不是说点10次就肯定一次去A里面取,9次去B里面去。你对概率的说法有问题。
解决方案三:
引用1楼rumlee的回复:
publicObjectget(Listlist1,Listlist2){Randomr=newRandom();if(r.nextInt(10)<1){returnlist1==null&&list1.size()==0?null:list1.get(r.nextInt(list1.size()));}else{returnlist2==null&&list2.size()==0?null:list2.get(r.nextInt(list2.size()));}}概率只能说是很多次点击之后统计的规律,而不是说点10次就肯定一次去A里面取,9次去B里面去。你对概率的说法有问题。
写错了,不好意思,return里面的条件应该用||,而不是&&publicObjectget(Listlist1,Listlist2){Randomr=newRandom();if(r.nextInt(10)<1){returnlist1==null||list1.size()==0?null:list1.get(r.nextInt(list1.size()));}else{returnlist2==null||list2.size()==0?null:list2.get(r.nextInt(list2.size()));}}