コードを配列にコピーしました(実際には201の国すべてのリストとインターネットの使用レベル)。このリストはアルファベット順に並べられており、配列内のデータに順序がないようにデータをランダム化する必要があります。ここに私のコードは次のとおりです。テキストファイルを配列に入力し、配列内のテキストファイルからデータをランダム化し、ランダム化されたデータを別のテキストファイルに出力する
import java.util.*;
import java.io.*;
public class Unsort {
public static void main(String[] args) throws IOException {
String[] countries = new String[201];
String[] percentages = new String[201];
String[] line = new String[201];
Scanner keyboard = new Scanner(System.in);
Scanner fileIN = new Scanner(new File("F:/CountrySortedAlpha.txt"));
PrintWriter out = new PrintWriter("F:/CountryUnsortedAlpha.txt");
while(fileIN.hasNext()){
for(int i = 0; i < 201; i++){
line[i] = fileIN.nextLine();
System.out.print(line[i] + " " + i + "\n");
}
for(int i = 0; i < 201; i ++){
int randomize = (int) (Math.random() * 201);
System.out.print("\n" + randomize);
}
}
}
}
私がしようとしている方法がでアレイにアクセスするために乱数を作ることですが、それは非常に多くの衝突で終わります。 2番目のループは、ランダム変数が機能することを確認することでした。だから私の質問です:どのように乱数ジェネレータを使用している間、私は衝突なしで配列のデータをランダム化するのですか?しかし、Java APIで事前に定義されたアルゴリズムを使用することはできません。
だけなら...私の教授は、私たちは、Java APIからアルゴリズムを使用することはできませんと述べました。それはデータ構造とアルゴリズムのクラスとして意味があります –
あなたの質問にそのような制約を加えてください;) –
別のアプローチ:0と配列サイズ-1の間にある2つの乱数を生成します。次に、tmpフィールドを使用して2つの配列値を交換します(位置aの内容をtempにコピーし、位置bの内容をaとtempをbにコピーします)。これを数回行います。 –