m*p 发帖数: 1331 | 1 要求用vector实现shuffle a deck of Card,如下:
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 deck = new Vector();
// implement this shuffle function. DO NOT USE Collections.shuffle() !!
public void shuffle(){
// your code goes here!
}
} |
m*p 发帖数: 1331 | 2 hint:
shallow copy
reference
【在 m*p 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 要求用vector实现shuffle a deck of Card,如下: : public class Card { : private int value; : Card(int v) { : value = v; : } : : public void print(){ : System.out.print(value+";"); : }
|
m*p 发帖数: 1331 | 3 核心问题,如何swap vector里面的2个elements?
【在 m*p 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 要求用vector实现shuffle a deck of Card,如下: : public class Card { : private int value; : Card(int v) { : value = v; : } : : public void print(){ : System.out.print(value+";"); : }
|
z****o 发帖数: 78 | 4 swap有STL标准函数吧。
查一下几个经典的shuffle算法,如何保证每种permutation的概率相等。
个人比较喜欢 for(i = 0..n-1) for( j = i..n-1) swap(i,j) 的那个,
实现起来简洁。 |
m*p 发帖数: 1331 | 5 sorry u didn't get my question
【在 z****o 的大作中提到】![](/moin_static193/solenoid/img/up.png) : swap有STL标准函数吧。 : 查一下几个经典的shuffle算法,如何保证每种permutation的概率相等。 : 个人比较喜欢 for(i = 0..n-1) for( j = i..n-1) swap(i,j) 的那个, : 实现起来简洁。
|
z****o 发帖数: 78 | 6 Vector v = new Vector();
v.add("1");
v.add("2");
v.add("3");
v.add("4");
v.add("5");
Collections.swap(v,0,4);
这种不行吗? |