アプリ版:「スタンプのみでお礼する」機能のリリースについて

Math.randomで100個の乱数を発生させてから、その中の最大値求めたいのです。一応JAVAの初心とのことでMAX関数を使わずにプログラムを書きたいです。どなた教えてください。

A 回答 (4件)

こんにちは、、



データが数値なら、乱数の入っている配列を
ソートしては、いかがでしょう。

public class sortarrays {
Random ran;
double [] data = new double [100];
double [] data1 = new double [100];
/** Creates a new instance of sortarrays */
public sortarrays() {
ran = new Random();
for(int i=0;i<data.length;++i){
data[i]=ran.nextDouble();
System.out.println(data[i]);
}
data1 = data.clone();
Arrays.sort(data1);
for(int i=0;i<data.length;i++){
System.out.println(data[i]+" "+data1[i]);
}
System.out.println("最大値 " + data1[data1.length-1]);
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
new sortarrays();
}

}
    • good
    • 0

10個発生させて上位3個を見てみました。



class SortAndShowMax01 {
public static void main(String args[]){
double[] doubleArray = new double[10];
for(int i = 0; i < doubleArray.length; i++){
doubleArray[i] = Math.random();
}
double tmp = 0.0;
for(int m = 0; m < doubleArray.length; m++){
for(int j = m + 1; j < doubleArray.length; j++){
if(doubleArray[m] < doubleArray[j]){
tmp = doubleArray[m];
doubleArray[m] = doubleArray[j];
doubleArray[j] = tmp;
}
}
}
System.out.println("MaxOne:" + doubleArray[0]);
System.out.println("MaxTwo:" + doubleArray[1]);
System.out.println("MaxThree:" + doubleArray[2]);
}
}
    • good
    • 0

class Max {


private Max() {
}

public static <T extends Comparable> T maximumOfArrayElements(T[] a){
T max = a[0];

for(T x : a){
if(max.compareTo(x) < 0){
max = x ;
}
}
return max;
}
}

class Sample {
public static double max(double[] array, int start, int end){
if(start+1==end){
return array[start] > array[end] ? array[start] : array[end];
}
int mid = (start + end) / 2;
double a = max(array, start, mid);
double b = max(array, mid , end);
return a > b ? a : b;
}
public static void main(String arg[]){
double [] data = new double[100];
Double [] Data = new Double[100];

for(int i=0;i<100;i++)
Data[i]=data[i]=Math.random();
System.out.println("max:"+Max.maximumOfArrayElements(Data));
System.out.println("max:"+max(data, 0, 99));

}
}
    • good
    • 0

乱数は置いておいて、100個の数値データから


最大値を求めたいわけですよね。

<ヒント>
配列にデータを入れてループをまわします。
現在の最大値と配列のある位置の値を
比較して配列の値のほうが大きければ
最大値を入れ替えればよいです。

これでわからないようならばソートに
関するサイトを調べたほうがいいと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!