Bisektion Zahlen 1-100. Ist mein Ansatz komplett Falsch? Wo liegt der Fehler für die falschen Vorschläge.
-
Das ist damit der Mensch nicht bescheissen kann
-
@SeppJ das ist für Die Überprüfung der Eingabe da. Solange der Nutzer einen Wert über 100 oder 0 eingibt, soll die Anweisung ausgeführt werden
-
du solltest dir vor allem mal gedanken über den programmablauf machen. wenn die zahl z.b. größer als 50 ist, ist min 50, ist die kleiner als 50, so ist max 50 bzw. allgemein ist das immer die eigegebene zahl. und die mitte ist dann glaube ich min + (max - min) / 2 bzw. max - (max - min) / 2.
nimm dir mal ein blatt papier (mit den zahlen von 1 - 10) und spiel das ganze durch!
-
@mmm_1482_ sagte in Bisektion Zahlen 1-100. Ist mein Ansatz komplett Falsch? Wo liegt der Fehler für die falschen Vorschläge.:
@SeppJ das ist für Die Überprüfung der Eingabe da. Solange der Nutzer einen Wert über 100 oder 0 eingibt, soll die Anweisung ausgeführt werden
Warum muss der Nutzer überhaupt eine Zahl eingeben?
-
@DirkB weil es teil der aufgabenstllung ist, das die eingegeben Zahl erraten werden soll (durch ausschlussverfahren)
-
@Wade1234 hab ich ... mein logisches Denkvermögen ist echt nicht gut
ich bin auch echt kein mathematiker/informatiker mensch. Nur gehört dieses eine Fach zu meinem Studium dazu -.- und ich bin zurzeit im Drittversuch und dreh langsam durch :` D ich studiere eigentlich nur etwas mit medien XD und bin eher der künstlerische kreative nicht nach logik basierende mensch
-
@mmm_1482_ sagte in Bisektion Zahlen 1-100. Ist mein Ansatz komplett Falsch? Wo liegt der Fehler für die falschen Vorschläge.:
@DirkB weil es teil der aufgabenstllung ist, das die eingegeben Zahl erraten werden soll (durch ausschlussverfahren)
Du (das Programm) fragt den Nutzer doch ob die (vom Programm) berechnete Zahl größer/kleiner/gleich der (vom Nutzer) ausgedachten Zahl ist.
Der Nutzer gibt seine Zahl erst dadurch bekannt, dass er auf die richtige Frage mit 'j' antwortet.
-
@DirkB ja genau
-
@mmm_1482_ ja aber wenn die zahl z.b. 75 ist, prüfst du auf 50, die zahl ist größer, neu_min ist 0, min ist 50, vorschlag ist (100 - 50) / 2 = 25. warum funktioniert das wohl nicht?
-
@mmm_1482_ sagte in Bisektion Zahlen 1-100. Ist mein Ansatz komplett Falsch? Wo liegt der Fehler für die falschen Vorschläge.:
@DirkB ja genau
Warum willst du dann einen Wert überprüfen, den der Nutzer gar nicht eingeben muss?
-
@Wade1234 ja das stimmt und das habe ich mir auch schon so gedacht, dass das deswegen nicht funktioniert. Nur fällt mir einfach kein besserer Lösunsgweg ein. Denn wenn es darum geht, dass die Zahl kleiner ist, funktioniert alles. Ich weiß aber nicht, welche Anweisung ich schreiben soll, wenn die Zahl größer ist
-
@DirkB ich überprüfe ja nicht "antwort" , sonder vorschlag , min und max, oder wie meinst du das?
-
@mmm_1482_ die antwort habe ich dir eigentlich gegeben. max bzw. min sind die geratene zahl, die mitte ist min + (max - min) / 2, also z.b. 50 + (100 - 50) / 2 = 75 oder 0 + (50 - 0) / 2 = 25
-
Ich habe das Programm mal gekürzt, indem ich die Rate-KI verbessert habe.
do { cout << "Bitte geben Sie eine Zahl zwischen 1-100 ein: " << endl; cin >> zahl; } while (zahl == 0 || zahl > 100); cout << "ist ihre Zahl: " << zahl << endl; cout << "(j) - ja: gleich " << endl; antwort = 'j'; cout << "Ihre Zahl lautet: " << zahl << endl;
-
@Wade1234 moment das muss ich kurz auf mich einwirken lassen : D
aber im voraus schon mal Danke
-
@SeppJ sagte in Bisektion Zahlen 1-100. Ist mein Ansatz komplett Falsch? Wo liegt der Fehler für die falschen Vorschläge.:
Ich habe das Programm mal gekürzt, indem ich die Rate-KI verbessert habe.
Das kann man optimieren, indem man die Zeilen 7,8 und 9 weglässt.
Überflüssiges Gesabbel.
-
@mmm_1482_ wenn du dir die zahlen von 1 bis 10 auf ein blatt papier zeichnest und die finger dann immer auf max und min legst, sollte das supergeil nachvollziehbar sein.
-
@Wade1234
ich hab mir vorhin nur ne skale 1-100 gemacht mit möglichen Wegenaber ich versuch das auch mal
und nochmals danke an euch allen und eure geduldich hab jetzt ne Vorstellung wo meine Fehler liegen und kann dann daran arbeiten