Zahlen Abstand zur Null bestimmen

Javlipse

Mitglied
Hallo, ich habe eine für könner wahrscheinliche einfache Frage:
wie kann ich in Java den Abstand einer Zahl zur null bestimmen und beim kleinsten Abstand dann einen System.out.println ausfüren lassen?
Also ich habe eine schleife, die immerneue Zahlen generiert und in demselben int speichert, aus diesen Zahlen möchte ich die kleinste herausfinden und dann outprinten lassen
 

httpdigest

Top Contributor
Der "Abstand" einer Zahl X zur Zahl 0 ist doch die Zahl X selbst... oder wie jetzt? Und wenn du den "absoluten Abstand" willst, dann eben Math.abs(X).
 

Javlipse

Mitglied
Der "Abstand" einer Zahl X zur Zahl 0 ist doch die Zahl X selbst... oder wie jetzt? Und wenn du den "absoluten Abstand" willst, dann eben Math.abs(X).

ja das schon, ich brauche nur eine Möglichkeit die zu vergleichen....

Quasi wie bei blackjack: Meine schleife erstellt erst Spieler und gibt dann per Math.random jedem Spieler eine zufällige Zahl int z.
Jedoch ist die Zahl nirgends gespeichert, weil nach dem ersten Spieler der int z dem nächsten Spieler die nächste zufällige Zahl hinschreibt.
Nun muss ich aber irgendwie vergleichen wer am nähesten bei der 21 ist...
Dafür habe ich mir gedacht 21 - z zu rechnen und dann das den Spieler, dessen Zahl am nähesten bei der 0 ist gewinnen zu lassen...
 
K

kneitzel

Gast
Was genau ist denn Deine Absocht?

Wenn Du damit einen Spieler auswählen willst, dann nimm doch einfach eine Zufallszahl zwischen 1 und n (bei n Spielern) um dann so gewählten Spieler zu wählen.

Ansonsten kannst Du das in einer Schleife machen und du merkst dir den bisher kleinsten Abstand / spieler. Wenn dann bei einem Spieler der Abstand kleiner ist, ersetzt du die Werte ... Das wäre sowas wie ein generischer Vorgang.
 

httpdigest

Top Contributor
Wenn du einfach nur den Spieler mit der höchsten Punktezahl haben willst, der noch weniger als 21 Punkte oder genau 21 Punkte hat, dann filtere die heraus, die höher als 21 Punkte haben und sortiere einfach alle Spieler absteigend nach Punktezahl:
Java:
import static java.util.Comparator.comparing;
import static java.util.stream.Stream.of;
import java.util.Optional;
import java.util.stream.Stream;
public class Player {
  private String name;
  private int value;
  public Player(String name, int value) {
    this.name = name;
    this.value = value;
  }
  public static Player player(String name, int value) {
    return new Player(name, value);
  }
  public int getValue() {
    return value;
  }
  public static Optional<Player> playerNearestTo(int limit, Stream<Player> allPlayers) {
    return allPlayers
        .filter(p -> p.value <= limit)
        .sorted(comparing(Player::getValue).reversed())
        .findFirst();
  }
  @Override
  public String toString() {
    return name + " (" + value + ")";
  }

  // Test
  public static void main(String[] args) {
    System.out.println(
        playerNearestTo(21, of(
           player("a", 7),
           player("b", 11),
           player("c", 19),
           player("d", 28))));
  }
}
 

MoxxiManagarm

Top Contributor
Wenn es um Blackjack geht ist das doch fast unsinnig? Jemand mit 22 Punkten (1 Punkt Abstand) hat verloren, dann ist er doch nicht besser als jemand mit 18 Punkten (3 Punkte Abstand). Und wenn alle über 21 sind dann hat keiner gewonnen, auch nicht der mit 22 Punkten, aus meiner Sicht.

Also ist der Ansatz mit filter auf < 21, dann suche geringsten Abstand (21 - punkte) wie von httpdiggest angedeudet schon am sinnvollsten, nur dass ich halt keinen Gewinner küren würde, sofern der filter eine leere Liste erzeugt. Dann hat das Haus gewonnen ;-)
 

Javlipse

Mitglied
Also mein Problem ist, dass alles über schleifen läuft und dem Spieler die Zahl nicht wirklich zugeordent ist, sondern nur geschrieben ist: Sysout ("Player " + player + " hat eine " v "gezogen. Score: " + v");
V ist dabei eine Math.random zahl, die durch die schleife generiert wird und player eine Zahl die bis n ausfsteigt.
 
K

kneitzel

Gast
Also welche Daten du wie speicherst, ist doch dir überlassen.

Wenn Du also jetzt feststellen solltest, dass Du die Daten noch brauchen kannst, dann merkst Du diese einfach. Das ist ja relativ problemlos.

Daher sehe ich zwei Möglichkeiten:
a) Du schaffst dir Strukturen, in denen Du die Daten speicherst um diese dann auszuwerten.
b) Du merkst Dir nur die Informationen, die wichtig sind. Das könnte jetzt also sowas sein wie:
- neue Variablen vor Schleife, die speichern: Aktuell höchste Summe und ggf. aktuell gewinnender Spieler.
- In der Schleife kannst Du dann diese Ausgabe machen. Wenn v > hoechsteSumme ist, dann hoechsteSumme = v und gewinnenderSpieler = player.

Dann kannst Du nach der Schleife Ausgeben: gewonnen hat <gewinnenderSpieler> mit <hoechsteSumme>. (evtl. prüfen, ob dies überhaupt gesetzt wurde. Bei BlackJack hatten evtl. alle > 21 und keiner hat gewonnen .. bzw. die Bank als letzter "Spieler" spielt nur eine Karte und hat dann mit der Karte gewonnen ...
 

Javlipse

Mitglied
Also welche Daten du wie speicherst, ist doch dir überlassen.

Wenn Du also jetzt feststellen solltest, dass Du die Daten noch brauchen kannst, dann merkst Du diese einfach. Das ist ja relativ problemlos.

Daher sehe ich zwei Möglichkeiten:
a) Du schaffst dir Strukturen, in denen Du die Daten speicherst um diese dann auszuwerten.
b) Du merkst Dir nur die Informationen, die wichtig sind. Das könnte jetzt also sowas sein wie:
- neue Variablen vor Schleife, die speichern: Aktuell höchste Summe und ggf. aktuell gewinnender Spieler.
- In der Schleife kannst Du dann diese Ausgabe machen. Wenn v > hoechsteSumme ist, dann hoechsteSumme = v und gewinnenderSpieler = player.

Dann kannst Du nach der Schleife Ausgeben: gewonnen hat <gewinnenderSpieler> mit <hoechsteSumme>. (evtl. prüfen, ob dies überhaupt gesetzt wurde. Bei BlackJack hatten evtl. alle > 21 und keiner hat gewonnen .. bzw. die Bank als letzter "Spieler" spielt nur eine Karte und hat dann mit der Karte gewonnen ...



Jaa, genau das was in b steht ist mein Ziel, jedoch weiß ich nicht, wie ich das Codetechnisch umsetzte, dass hoechsteSumme immer zur höchsten Summe überschrieben wird....
Wenn alle über 21 haben kommt "Everybody Lost", damit brauche ich keine Bank
 

temi

Top Contributor
Hast du Arrays schon kennengelernt?

Dann wäre z.B. folgendes sinnvoll (Variante a)
Java:
int[] summeSpieler = new int[anzahlSpieler]; // Array zum Speichern der Summe jedes Spielers

//...

summeSpieler[aktuellerSpieler - 1] += geradeGezogeneKarte; // Beachte, dass der erste Index im Array 0 ist
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Versteht jemand, was diese beiden Zahlen bei dem IJVM Code zu bedeuten haben? Allgemeine Java-Themen 10
L die 3 größten Zahlen im Array Allgemeine Java-Themen 1
A Potenzmenge der Zahlen von 1 bis n Allgemeine Java-Themen 20
Monokuma String List nach Zahlen und Worten sortieren Allgemeine Java-Themen 9
G Java Editor Löschen doppelter Zahlen einer Liste Allgemeine Java-Themen 2
A String auf Zahlen überprüfen Allgemeine Java-Themen 5
R Methoden Was fehlt mir bzw. muss ich bei der Methode countHarshabNumbers ändern damit ich die Harshad Zahlen im Intervall [51, 79] zählen kann? Allgemeine Java-Themen 19
O Variablen Addition von Double-Werten ergibt seltsame 0.9999999 Zahlen Allgemeine Java-Themen 2
B Zufällig zwischen vorgegebenen Zahlen auswählen Allgemeine Java-Themen 6
P Rechnen mit sehr kleinen Zahlen Allgemeine Java-Themen 5
M Zahlen in Array anordnen Allgemeine Java-Themen 8
D Erste Schritte Arrays vergleichen und die zahlen die nur einmal vorkommen ausgeben Allgemeine Java-Themen 5
D Erste Schritte Fehler mit negativen und 0 Zahlen im String Allgemeine Java-Themen 6
T Tesseract OCR mit Zahlen Allgemeine Java-Themen 1
D Integer-Array variabler Größe mit Zahlen befüllen (Schleifen) Allgemeine Java-Themen 0
F Zahlen zu Bits Allgemeine Java-Themen 3
S Überprüfen, ob 5 Zahlen nebeneinander liegen Allgemeine Java-Themen 5
R Große Zahlen in Worten abkürzen Allgemeine Java-Themen 10
B Arrays mit Text und Zahlen füllen Allgemeine Java-Themen 3
G Aus JTextField Zahlen auslesen und random generieren Allgemeine Java-Themen 10
D Operatoren Logischer Rightshift von negativen Zahlen auf Bit-Ebene Allgemeine Java-Themen 7
L 2-Dimensionaler String: Zahlen verschieben Allgemeine Java-Themen 10
M Algorithmus zum Zahlen einteilen Allgemeine Java-Themen 8
H Fibonacci-Zahlen Allgemeine Java-Themen 5
B Zahlen manuell eingeben und in Array Speichern Allgemeine Java-Themen 2
E mit extrem langen Zahlen (als Zeichneketten) arbeiten Allgemeine Java-Themen 4
M Probleme beim rechnen, bei Zahlen mit führenden Nullen. Allgemeine Java-Themen 7
L Filewriter schreibt Zahlen in Textdatei Allgemeine Java-Themen 2
T Methoden Zahlen austauschen Allgemeine Java-Themen 8
Z Zahlen aus Bild auslesen Allgemeine Java-Themen 1
M ungerade zahlen auf 4 zahlen aufteilen Allgemeine Java-Themen 2
F Funktionsplotter komplexe Zahlen: geeignetes 3D-Koordinatensystem Allgemeine Java-Themen 16
B Zahlen ausgeben hilfe! Allgemeine Java-Themen 8
S Zahlen aus (String mit zahlen) immer wieder neu auslesen Allgemeine Java-Themen 5
N Bin to Dez und umgekehrt mit sehr großen Zahlen Allgemeine Java-Themen 2
T Modulo-Operator versagt bei zu großen Zahlen? Allgemeine Java-Themen 14
AssELAss String mit Zahlen mit Tausendertrennzeichen versehen Allgemeine Java-Themen 14
D Code bitte mit 19 stelligen Zahlen kompatibel machen Allgemeine Java-Themen 5
U (Java) Happy Numbers in Anlehnung an den Sieb des Eratosthenes (Glueckliche Zahlen) Allgemeine Java-Themen 1
J Array ohne vorher festgelegte Länge oder Wie wandle ich Zahlen in Zahlen mit anderen Basen um? Allgemeine Java-Themen 6
Cayton Bruchrechner stürzt bei eingabe negativer Zahlen ab Allgemeine Java-Themen 4
N Zahl mit bestimmter Länge und nur bestimmten Zahlen generieren lassen Allgemeine Java-Themen 7
P Datentypen String-Daten zu Byte-Zahlen konvertieren - Komme nicht weiter nach vielem versuchen :-/ Allgemeine Java-Themen 7
I Java-Programm: Zahlen in Worte Allgemeine Java-Themen 22
H String auf Zahlen prüfen Allgemeine Java-Themen 4
V iText Textfelder mit Zahlen! Allgemeine Java-Themen 2
M Rechnen mit kleinen Zahlen langsamer!? Allgemeine Java-Themen 11
R Modulo mit negativen Zahlen Allgemeine Java-Themen 8
Luk10 Römische Zahlen in Java Allgemeine Java-Themen 7
R Codehinweise: Algorithmus Größenvergleich von n Zahlen Allgemeine Java-Themen 5
GianaSisters ArrayList mit Zahlen Allgemeine Java-Themen 10
B User-Input aus Zahlen und Operatoren - beste Umsetzung? Allgemeine Java-Themen 8
S Fixe Zahlen vergleichen Allgemeine Java-Themen 4
D JTable -> 1Spalte nur zahlen Allgemeine Java-Themen 2
N Zahlen in Strings einer ArrayList sortieren Allgemeine Java-Themen 14
T Apache POI Export EXCEL - [Zahlen-Werte] Allgemeine Java-Themen 1
ModellbahnerTT Button mit Zahlen beschriften Allgemeine Java-Themen 1
J Zahlenkombination aus int-array, mit absteigenden Zahlen Allgemeine Java-Themen 6
P große double Zahlen und modulo Allgemeine Java-Themen 8
R Runden von Zahlen Allgemeine Java-Themen 3
J Zahlen Rechtsbuendig in File schreiben Allgemeine Java-Themen 3
W POI - Formatierung für Zahlen Allgemeine Java-Themen 4
MQue Zahlen mit Border Allgemeine Java-Themen 2
T ungerade zahlen berechnen Allgemeine Java-Themen 3
N Zahlen mit Nachkommastellen aus Textfeldern einlesen Allgemeine Java-Themen 6
P Algoritmus für 3er-Paare von n Zahlen Allgemeine Java-Themen 12
A Fibonacci-Zahlen & kopfgesteuerte Schleifen & Strukt Allgemeine Java-Themen 8
J Suche regex-Pattern fuer Liste von Zahlen zwischen 0-100 Allgemeine Java-Themen 6
G die mittlere von 5 Zahlen nur mit if und else finden Allgemeine Java-Themen 48
M Rechnen mit sehr kleinen Zahlen Allgemeine Java-Themen 8
MQue Zahlen an alysieren Allgemeine Java-Themen 6
ARadauer Random keine Zahlen doppelt Allgemeine Java-Themen 4
V FileWriter und Zahlen (Kein Problem, nur Verständnisfrage) Allgemeine Java-Themen 4
G Strings die Zahlen enthalten sinnvoll sortieren (A2 < A10 Allgemeine Java-Themen 4
F 3 Zahlen "vereinfachen" Allgemeine Java-Themen 5
C double Zahlen mit drei NachkommaStellen in String umwandeln Allgemeine Java-Themen 2
A testen ob Primzahl dauert bei größeren zahlen extrem lange Allgemeine Java-Themen 8
E Hex- Zahlen in Datei Allgemeine Java-Themen 4
G Umrechnen von grossen Zahlen ins Hex-System Allgemeine Java-Themen 3
S Zahlen sortieren Allgemeine Java-Themen 3
D Zahlen innerhalb eines Strings auslesen Allgemeine Java-Themen 3
P rechnen mit extrem grossen zahlen Allgemeine Java-Themen 2
X Logische Operatoren auf binären Zahlen Allgemeine Java-Themen 2
F Array mit Zahlen drin sortieren Allgemeine Java-Themen 2
M Hilfe: Lotto: die 6 häufigsten generierten zahlen ausgeben Allgemeine Java-Themen 13
O String auf zahlen prüfen (java 1.3) Allgemeine Java-Themen 4
G Methode, die Buchstaben in Zahlen umwandelt? Allgemeine Java-Themen 13
S Integer-Zahlen in Excel-Sheet schreiben Allgemeine Java-Themen 10
M Lange Zahlen in Java Allgemeine Java-Themen 4
C zahlen einlesen Allgemeine Java-Themen 2
thE_29 Wie hex Zahlen darstellen Allgemeine Java-Themen 3
G Zahlen vergleichen Allgemeine Java-Themen 5
S Rechnen mit float Zahlen Allgemeine Java-Themen 2
H Kann keine Zahlen von Buchstaben unterscheiden Allgemeine Java-Themen 4
S Algorithmus um Objekte auf einer Flaeche mit gleichem Abstand anzuordnen..? Allgemeine Java-Themen 20
M Swing JFreeChart Domain Axis Label Abstand zu TickUnitLabel Allgemeine Java-Themen 9
R Abstand Punkt zur Geraden Allgemeine Java-Themen 35
W itext: Initialer Abstand in einem Dokument Allgemeine Java-Themen 2
C JTable, Abstand zwischen Zellen Allgemeine Java-Themen 2
B Breite/Abstand Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben