一幅牌随抽出15张 一幅牌随抽出15张,用JAVA怎么写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把这副牌放list啊,然后通过random方法随机生产一个0~1之间的数,乘以牌数就可以得到一个随机的数组下标了啊,然后就可以得到随机得到一个牌了,然后在list里把这个牌去掉,再循环或者递归就好了 random方法随机生产一个0~1之间的数,乘以牌数就可以得到一个随机的数组下标这个公平吗?不如随机产生一个0~list.length-1的整数ii即list中牌的下标 产生的随机数乘以牌数后得到一int型数,如果有两个相等怎么办?可以先把牌加到一个List里面,然后掉用Collections类的shuffle方法对List数组进行随机排序,然后再随便从这个List中取出15个元素就可以了 直接使用Collections.shuffle(List<?> list)打乱一下顺序,取前15张就可以了。 public static void main(String[] args) { final int length = 13; String[] hearts = new String[length]; String[] spades = new String[length]; String[] diamonds = new String[length]; String[] clubs = new String[length]; List<String> list = new ArrayList<String>(4 * length + 2); for (int i = 0; i < length; ++i) { String ch; int value = i + 1; if (value == 1) { ch = "A"; } else if (value == 11) { ch = "J"; } else if (value == 12) { ch = "Q"; } else if (value == 13) { ch = "K"; } else { ch = "" + value; } hearts[i] = "heart " + ch; spades[i] = "spade " + ch; diamonds[i] = "diamond " + ch; clubs[i] = "club " + ch; list.add(hearts[i]); list.add(spades[i]); list.add(diamonds[i]); list.add(clubs[i]); } list.add("Red Joker"); list.add("Black Joker"); System.out.println(list); Collections.shuffle(list); System.out.println(list); List<String> subList = list.subList(0, 15); System.out.println(subList); } 不用list,一副牌按顺序编号,1~54,产生1~54间的随机数,然后换算成花色和数字就好了,53、54两张牌算做大小鬼就行了。 空指针异常 求助!菜鸟Struts2问题 jsp页传值问题 问一个关于jndi的的问题 访问jsp页面路径里总是多了个servlet google过了,还是不能解决的tomcat问题 Hibernate一对多双向关联如何更新子表的内容 jsp新手求教, 求帮忙 跪求在My Eclipse4.0上配置hibernate方法! 怎样在数据库上实现struts资源文件? Tomcat配置 关于hibernate联级操作的问题(加急)
这个公平吗?
不如随机产生一个0~list.length-1的整数i
i即list中牌的下标
可以先把牌加到一个List里面,然后掉用Collections类的shuffle方法对List数组进行随机排序,然后再随便从这个List中取出15个元素就可以了
public static void main(String[] args) {
final int length = 13;
String[] hearts = new String[length];
String[] spades = new String[length];
String[] diamonds = new String[length];
String[] clubs = new String[length];
List<String> list = new ArrayList<String>(4 * length + 2); for (int i = 0; i < length; ++i) {
String ch;
int value = i + 1;
if (value == 1) {
ch = "A";
} else if (value == 11) {
ch = "J";
} else if (value == 12) {
ch = "Q";
} else if (value == 13) {
ch = "K";
} else {
ch = "" + value;
} hearts[i] = "heart " + ch;
spades[i] = "spade " + ch;
diamonds[i] = "diamond " + ch;
clubs[i] = "club " + ch; list.add(hearts[i]);
list.add(spades[i]);
list.add(diamonds[i]);
list.add(clubs[i]);
}
list.add("Red Joker");
list.add("Black Joker"); System.out.println(list);
Collections.shuffle(list);
System.out.println(list);
List<String> subList = list.subList(0, 15);
System.out.println(subList); }
不用list,一副牌按顺序编号,1~54,产生1~54间的随机数,然后换算成花色和数字就好了,53、54两张牌算做大小鬼就行了。