gpt4 book ai didi

java:洗牌,

转载 作者:行者123 更新时间:2023-11-30 05:05:37 27 4
gpt4 key购买 nike

这是一个面试问题。请给一些提示:

使用 vector 实现一个方法,洗一副牌。

public class Card {
private int value;
Card(int v) {
value = v;
}

public void print(){
System.out.print(value+";");
}
}



public class DeckShuffle {

private final int num;
Vector<Card> deck = new Vector<Card>();

// implement this shuffle function. DO NOT USE Collections.shuffle() !!
public void shuffle(){
// your code goes here!
}



}

最佳答案

Collections.shuffle() 的代码可以在 JDK 或 OpenJDK 的源包中找到,但算法非常简单(对于集合和数组来说基本上是相同的) :

given a[]
for i <- 0..a.length-2
rnd_index <- random(i, a.length) #inclusive, exclusive
swap a[i] and a[rnd_index]
next

这可以正常工作,因此您不需要额外的并行内存。它被称为Fisher Yates shuffle .

关于java:洗牌,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5205321/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com