Array/ Histogramm

elisio

Mitglied
Hallo zusammen,
ich möchte gerne drei verschiedene Arrays erzeugen, die folgende Funktionen beinhalten:

Das erste Array soll 1000 Zufallswerte zwischen 0 und 255 speichern. Dies ist auch kein Problem.

Das zweite Array soll eine Größe von 256 haben und ausgeben, wie oft jede Zufallszahl im ersten Array vorhanden ist. Ist die Zufallszahl 7 z.B. 3-mal vorhanden, soll die siebte Komponente des Arrays den Wert 3 haben.

Bei einer ähnlichen Aufgabe habe ich das Problem mit einer for-Schleife und if-Bedingungen gelöst, allerdings waren es dort nur die Zufallswerte 1, 2 und 3. Nach Möglichkeit möchte ich für die neue Aufgabe nicht 256 if-Bedingungen schreiben!😀

Das dritte Array soll die Größe 32 haben und jeweils den Mittelwert aus 8 aufeinander folgenden Zahlen aus dem zweiten Array ausgeben (32 x 8 = 256).

Das erste und dritte Array sollte eigentlich kein Problem sein, nur das zweite macht mir Gedanken.

Hier mein Lösungsansatz:
Java:
import java.util.Random;

class Histogramm{
	public static void main(String[] args){
		
		int [] array1;
		array1 = new int[1000];
		
			Random r = new Random();
			for(int i=0; i<array1.length; i++){
				array1[i] = r.nextInt(255);
				
			}
	
	}
}
 
Hey!

Die algorithmische Seite des Problems sieht so aus:
Java:
public static void main(String[] args) {
	final int max = 256;
	
	int[] array1 = new int[1000];
	int[] array2 = new int[max];
	
	final Random r = new Random();
	for (int i = 0; i < array1.length; i++) {
		int random = r.nextInt(max);
		array1[i] = random;
		array2[random]++;
	}
	
	System.out.println(Arrays.toString(array1));
	System.out.println(Arrays.toString(array2));
}
Hattest noch nen kleinen Fehler bei
Code:
array1
: Hast nur Zahlen kleiner als 255 eingefügt.
Code:
array3
sollte ja kein Problem mehr darstellen. 😉
 

Zurück
Oben