hilfe bei java-programm gesucht

  • #1
C

cyberjunior

Bekanntes Mitglied
Themenersteller
Dabei seit
01.03.2003
Beiträge
233
Reaktionspunkte
0
Ort
Germany
Hallöchen leute,

ich habe mir da grad ein programm in der sprache java zur schulischen übung geschrieben und komme da jetzt nicht weiter.
also zu anfang.
Ich habe: - 5 array mit zahlen und nullen
- einen zähler der zählt wieviel zahlen(ausgenommen 0) im
array sind, die werte liegen auf 5 arrays.

nun soll das programm den array suchen wo die meisten zahlen drin sind.und auf einen neuen array legen.
wenn mehrmals die gleichhohe zahl zahlen in einem araay sind soll er per zufall einen auswählen.

hoffe ihr könnte damit was anfangen.

bis denne.
 
  • #2
Vielleicht sagst du noch, was genau das Problem ist bzw. wo du nicht weiterkommst? ;)
 
  • #3
nun soll das programm den array suchen wo die meisten zahlen drin sind.und auf einen neuen array legen.
wenn mehrmals die gleichhohe zahl zahlen in einem araay sind soll er per zufall einen auswählen.

das ist das problem.

und dafür suche ich hilfe, für diesen programmteil.
 
  • #4
Hallo cyberjunior

Ich würde folgendes Vorgehen vorschlagen:

1. für jedes Array Zahlen, die <>0 sind zählen und in einem neuen Array B speichern (Annahme: deine Arrays sind nummeriert und ich speichere die Anzahl Zahlen <>0 für Array i an Postion i von Array B):

Ansatz A:
Sind die Zahlen im Array unsortiert, bleibt dir nichts anderes übrig, als dir alle Zahlen in einem Array anzusehen.

Ansatz B:
Sind die Zahlen im Array sortiert, lässt sich ein schnellerer Algorithmus implementieren. Z.B. aus einer Abwandlungen aus binärer Suche, so dass du aus den Positionen die Anzahl Nullen im Array bzw. die Anzahl der Zahlen <>0 berechnen kannst.

2. Ermitteln der grössten Anzahl Zahlen cmax, die in einem der Arrays enthalten ist:

Ansatz A:
Beim speichern der Anzahl Zahlen <>0 kannst du dir die grösste Zahl merken, die du speicherst. (Oder im Nachhinein das Array B durchsehen, in das du die Anzahl Zahlen <>0 gespeichert hast)

3. Zufällige Wahl eines Arrays unter jenen Arrays, deren Anzahl Zahlen cmax entspricht:

Ansatz A:
Gehe das Array B, welches die Anzahl Zahlen <>0 für jedes deiner Arrays enthält, durch. Entspricht die Anzahl Zahlen <>0 cmax, dann speichere die Array-Nummer (=Index im Array B) zusammen mit einer Zufallszahl in einer Prioritätswarteschlange (Priority Queue), wobei die Zufallszahl die Priorität angibt. Nehme dann das Element, mit grösster Priorität aus der Prioritätswarteschlange -> Nummer des gewählten Arrays

Ansatz B:
Zähle die Anzahl Arrays, deren Anzahl Zahlen <>0 cmax entspricht (d.h. wieviele Einträge im Array B cmax entsprechen). Sei k diese Anzahl. Dann wähle zufällig eine Zahl in {1,...,k}. Sei die gewählte Zahl m. Dann gehe das Array B durch. Entspricht die Anzahl Zahlen <>0 das m-te mal cmax und du hast dir gerade Position i vom Array B angesehen, dann hast du Array i gewählt.

Zufallszahlen: siehe Klasse Random
 
Thema:

hilfe bei java-programm gesucht

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.959
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben