java实现洗牌算法

Posted bot攻略

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java实现洗牌算法相关的知识,希望对你有一定的参考价值。

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;


/**打乱扑克牌*/
public class test1 
	public static void main(String[] args) 
		String [] hua = new String[]"黑桃","红桃","梅花","方砖";
		String [] num = "1","2","3","4","5","6","7","8","9","10","J","Q","K","A";
		//抽象扑克牌集合
		List<String> puke = new LinkedList<>();
		for(int i=0;i<num.length;i++)
//			System.out.print("\\n");
			for(int j=0;j<hua.length;j++)
//				System.out.print(hua[j]+num[i] +"\\t");
				puke.add(hua[j]+num[i]);
			
		
		//实例化个随机数
        Random random = new Random();
		String temp = null;
		//模仿洗牌100次
		for(int k=0;k<100;k++)
			int max = puke.size();
			int be = random.nextInt(max)%(max-0+1);
			int af = random.nextInt(max)%(max-0+1);
			//两次抽取的随机数相等的话就不洗,以免会出现重复数值
			if(be==af)continue;
//			System.out.println(me);
			temp = puke.get(be);
			puke.set(be, puke.get(af));
			puke.set(af, temp);
		
		
		int p = 0;
		for(Iterator<String> it = puke.iterator();it.hasNext();)
			if(p%4==0)System.out.print("\\n");
			System.out.print(it.next());
			p++;
			
	

以上是关于java实现洗牌算法的主要内容,如果未能解决你的问题,请参考以下文章

java实现洗牌算法

字节跳动技术训练营—后端开发专场 机试题解

图解插入排序

模拟斗地主

C语言的随机发牌程序(红桃黑桃梅花方块)

2022 华为机试真题 C++ 实现 德州扑克