2016-08-11 4 views
0

javaを使用すると、どのようにして2つのランダムなアイテムを選んで1つのアイテムを増分し、同時に他のアイテムを減らすことができるかを、Javaを使って設定します。 ありがとうございます。セットから2つのランダムなアイテムを選ぶには?

+1

は、次のリンクヘルプん:http://stackoverflow.com/questions/124671/picking-a-random-element-from-a-set – steveb

答えて

0

私は、セットのサイズを確認し、ランダムにその下に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(); 
+0

はい、これは、完全に私の状況に合いました – aditya

関連する問題