Algorithmus formulieren, wie ermittelt man die häufigste Zahl einer Zahlenfolge und wie häufig kommt diese vor?
Formulieren sie einen Algorithmus wie folgt: Gegeben sei eine folge ganzer Zahlen, deren Werte in dem festgelegten Bereich (0,1,2,....,9) liegen. Es soll ermittelt werden, welche Zahl am Häufigsten vorkommt. Falls es mehrere gibt, soll eine beliebige ausgewählt werden.
Studiere Wirtschaftsmathematik und hab das Modul Einführung in die Informatik.
Mein Ansatz:
Eingabe: Zahlenfolge im Bereich (0,1,2,...,9) Ausgabe: Welche Zahl am Häufigsten vorkommt und wie oft.
Unser Tutor meinte, wir sollen jeder Zahl eine Variable zuordnen und dann meinte er auch noch was von Zählervariable.
Bsp: Folge: 92131124
An diesem Bsp. hat es mein Tutor versucht zu erklären aber ging alles so schnell:( Er hat es auch mit dem Schubladenprinzip, das habe ich verstanden aber nicht wie das mit Variable zuordnen geht und Zählervariable.
3 Antworten
Am besten wäre nur dafür natürlich ein Array, aber ich nehme mal an, das hattet ihr noch nicht.
Ein Array ist eine List die meistens so aussieht: z.B. [9,2,1,3,1,1,2,4]
Diese List ist z.B. in 'possibility' gespeichert.
possibility = [9,2,1,3,1,1,2,4]
Einen Wert aus dieser Liste ruft man folgendermaßen ab:
possibility[0] wäre jetzt 9
possibility[1] wäre 2
...
possibility[7] wäre 4
Man ruft also einen Teil dieser Liste ab indem man die Variable+die Indexnummer in eckigen Klammern schreibt.
Dabei beginnt der Index mit 0; somit ist die 1. Stelle im Index 0, die 2. Stelle im Index 1 usw., also immer um 1 verschoben.
Genauso kann man auch eine Stelle in die Liste schreiben:
possibility[0] = 4 würde heißen das der 1. Wert der Liste jetzt eine 4 statt einer 9 wäre.
Schau dir am besten auf YT ein Video dazu an.
Eine Zählveriable ist lediglich eine Variable, die in einer Schleife(also einer Wiederholung des selben Codes)sich bei jedem Durchlauf verändert(meistens +1 oder -1).
Sie zählt also mit.
Vielleicht hilft dir ein Array bei der Lösung.
Wenn du mir sagen könntest, in welcher Sprache ihr programmiert, könnte ich dir ein verständlicheren Programmcode geben.
Viel Glück ;)
Ich hoffe ich konnte dir helfen :)
LG
Danke:) also programmieren kommt erst noch. Wir sollen nur auf einen Zettel schreiben wie das grobe Prinzip ist.
Du kannst ein Array von 0..9 anlegen.
Dann eine Schleife in der Du jeden Ziffer auswertest.
Dann erhöhst Du den Array von der Zahl...
Danach suchst Du im Array das Maxium... und dann hast Du die Ziffer
Ja, das wäre natürlich die einfachste Lösung.
Für jede Zahl des Datensatzes, füge es mit Anzahl = 0 dem Ergebnisfeld hinzu und inkrementiere dann den Wert. Dann vergleiche den gerade inkrementierten wert mit dem gespeicherten Maximum. Ist ein neues Maximum entstanden, speichere die gerade behandelte Zahl und deren Häufigkeit.
Willst du nicht soviel speichern, könntest du einen Sortieralgorithmus vorschalten und zählst anschließend jede Zahl, bis die nächsthöhere dran kommt.