javaに関する質問なんですが,配列をシャッフルして選択された際に.
選択されたものに重みを付けて,2回目シャッフルする際に,
その重みを考慮した選択にするにはどのようにしたらよいでしょうか?
ちょっとイメージしにくいかもしれませんが,
例えば,1〜100の配列があった際に,シャッフルして10個の配列を選びます.
選択された10個の配列には重みを付けます.
そして,もう1回シャッフルする際に先ほど選択した10個の配列(重みのある)が出やすくするような感じにシャッフルをしたいのですが...
<追記>回答ありがとうございます.ちょっとやってみているのですが,ちょっとうまくいきません.
ArrayList<Integer> list = new ArrayList<Integer>(); for ( int y = 0; y < 100; y++ ) { list.add(y); } Collections.shuffle(list); for(int i=0; i<10; i++) { int x = 0; x = list.get(i); }
<追記2>
import java.util.;
import java.lang.;
import java.io.*;
public class Test1{
public static void main(String []args){
ArrayList<Integer>random = new ArrayList<Integer>(); ArrayList<Integer> copy = new ArrayList<Integer>(); for (int y = 0; y < 100; y++ ) { random.add(y); } System.out.println("1回目シャッフルした場合"); Collections.shuffle(random); System.out.println(random); for(int f=0; f<10; f++) { int x_list = random.get(f); copy.add(x_list); random.add(x_list); } System.out.println("1回目に採用する10個の数字は"); System.out.println(copy); System.out.println("2回目行うときにランダムリストに1回目の数字を追加"); System.out.println(random); } }
ここまでは書けました.やはり再度シャッフル際にリストから弾く場合はremoveを使うのでしょうか?