0
javaを使用すると、どのようにして2つのランダムなアイテムを選んで1つのアイテムを増分し、同時に他のアイテムを減らすことができるかを、Javaを使って設定します。 ありがとうございます。セットから2つのランダムなアイテムを選ぶには?
javaを使用すると、どのようにして2つのランダムなアイテムを選んで1つのアイテムを増分し、同時に他のアイテムを減らすことができるかを、Javaを使って設定します。 ありがとうございます。セットから2つのランダムなアイテムを選ぶには?
私は、セットのサイズを確認し、ランダムにその下に2つの "インデックス"を選択します。もちろん、の要素には実際のインデックスはありません(少なくともList
にはget(int)
メソッドが含まれていますが、この動作はSet
を反復してステップ数を数えることでシミュレートできます):
Set<Object> set = ...;
Random random = new Random(); // or some better RNG
int size = set.size();
int step1 = rand.nextInt(size - 1);
int step2 = rand.mextInt(size - step1);
Iterator<Object> iter = set.iterator();
for (int i = 0; i < step1 - 1; ++i) {
iter.next();
}
Object rand1 = iter.next();
for (int i = 0; i < step2 - 1; ++i) {
iter.next(); // Note, this is the SAME iterator!
}
Object rand2 = iter.next();
はい、これは、完全に私の状況に合いました – aditya
は、次のリンクヘルプん:http://stackoverflow.com/questions/124671/picking-a-random-element-from-a-set – steveb