Kleiner Denksport- (und Logik?-) Thread
- Anthea
- Boarddoktor
- Beiträge: 10662
- Registriert: Mo 5. Dez 2005, 13:15
- Receivertyp: TF7700HDPVR, SRP-2100, SRP-2410CI+Eco
- Receiverfirmware: aktuell :)
- Wohnort: Fürth
- Kontaktdaten:
AW: Kleiner Denksport- (und Logik?-) Thread
Wobei es ein Gerücht ist, dass Zugriffe auf Strings langsam sind. Die Stringfunktionen in den Standardlibs sind meistens sehr langsam, weil die ständig noch Sicherheitsüberprüfungen machen müssen. Ein Vergleich von einzelnen Charakters innerhalb eines Strings ist auch nur in Byte-Array-Zugriff und Byte-Vergleich. Das schaffen die meisten Prozessoren schon recht schnell. Wobei Arrays, wenn sie sich nicht gerade im Cache aufhalten, grundsätzlich als Far-Pointer direkte Memory-Zugriffe verursachen, und damit auf die Anbindung des Speichers durchschlagen, und somit meist schon etwas langsamer sind als lokale Variablen, die in einem Prozessorregister gehalten sind. Soll ich jetzt noch eine optimierte Schleife in x86 Assembler nachliefern? (alternativ könnte ich noch 6502-Assembler oder 80C166-Assembler rauskramen, aber die sind schon etwas rostig)
- FireBird
- Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
- Beiträge: 28754
- Registriert: Fr 9. Dez 2005, 09:59
- Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k - Wohnort: Wien
AW: Kleiner Denksport- (und Logik?-) Thread
Nö, bitte in MIPS, denn da ist es egal.
- Anthea
- Boarddoktor
- Beiträge: 10662
- Registriert: Mo 5. Dez 2005, 13:15
- Receivertyp: TF7700HDPVR, SRP-2100, SRP-2410CI+Eco
- Receiverfirmware: aktuell :)
- Wohnort: Fürth
- Kontaktdaten:
AW: Kleiner Denksport- (und Logik?-) Thread
Ich hab aber gerade keinen SGI Server zur Hand, um das zu testen Wobei... hat die FritzBox nicht auch TI-Chips mit MIPS Architektur?
- FireBird
- Suspekter verdächtiger Zauberküchenchef, TAP & Firmware-Guru
- Beiträge: 28754
- Registriert: Fr 9. Dez 2005, 09:59
- Receivertyp: SRP-2401CI+ TFIR
vu+ Duo 4k - Wohnort: Wien
AW: Kleiner Denksport- (und Logik?-) Thread
Wie wäre es mit dem Topf?
- Anthea
- Boarddoktor
- Beiträge: 10662
- Registriert: Mo 5. Dez 2005, 13:15
- Receivertyp: TF7700HDPVR, SRP-2100, SRP-2410CI+Eco
- Receiverfirmware: aktuell :)
- Wohnort: Fürth
- Kontaktdaten:
AW: Kleiner Denksport- (und Logik?-) Thread
Hm. Stimmt auch wieder. An den hab ich jetzt gar nicht gedacht. Auf dem hab ich aber auch noch nie was auf Assembler gemacht. Sollte ich vielleicht mal. Vielleicht kommt ja was völlig sinnloses bei raus
(Ein Kollege hält mir immer noch vor, dass ich mal vor lauter Verzweiflung über ein bestimmtes Problem gesagt habe: So, jetzt muss ich mal zur Entspannung wieder was in Assembler programmieren)
(Ein Kollege hält mir immer noch vor, dass ich mal vor lauter Verzweiflung über ein bestimmtes Problem gesagt habe: So, jetzt muss ich mal zur Entspannung wieder was in Assembler programmieren)
- hagge
- Jung-Guru
- Beiträge: 1921
- Registriert: Fr 9. Dez 2005, 15:43
- Receivertyp: SRP-2401CI+, TF5000PVR
- Wohnort: Stuttgart
AW: Kleiner Denksport- (und Logik?-) Thread
@Anthea
Dein Programm löst nicht die Grundaufgabe. Beispiele 3, 6 und 7 funktionieren mit Deinem Programm nicht. Es schluckt einfach alle Punkte, also auch die mehrfachen Punkte und führende Punkte in Filenamen, die eigentlich übrig bleiben sollen.
Gruß,
Hagge
Dein Programm löst nicht die Grundaufgabe. Beispiele 3, 6 und 7 funktionieren mit Deinem Programm nicht. Es schluckt einfach alle Punkte, also auch die mehrfachen Punkte und führende Punkte in Filenamen, die eigentlich übrig bleiben sollen.
Gruß,
Hagge
Zuletzt geändert von hagge am Fr 16. Nov 2012, 19:32, insgesamt 2-mal geändert.
- hagge
- Jung-Guru
- Beiträge: 1921
- Registriert: Fr 9. Dez 2005, 15:43
- Receivertyp: SRP-2401CI+, TF5000PVR
- Wohnort: Stuttgart
AW: Kleiner Denksport- (und Logik?-) Thread
[quote="Anthea"]Wobei es ein Gerücht ist, dass Zugriffe auf Strings langsam sind.[/quote]
Es sind definitiv Zugriffe, die auf das RAM erfolgen, und die sind *immer* langsamer als Zugriffe auf Prozessorregister. Ja, durch Caching kann es sein, dass diese Zugriffszeiten stark verkürzt werden, aber sie kommen trotzdem nicht an das Prozessorregister ran.
Außerdem schreibe ich das gerade für einen Bootloader, in dem das Daten-Caching noch gar nicht aktiviert ist. Insofern ist der Speicherzugriff *erheblich* langsamer als der Registerzugriff, wahrscheinlich um Faktor 10 oder noch mehr.
BTW bei mir geht es um ARM, nicht um MIPS-Code.
Gruß,
Hagge
Zuletzt geändert von hagge am Fr 16. Nov 2012, 19:40, insgesamt 1-mal geändert.
- Anthea
- Boarddoktor
- Beiträge: 10662
- Registriert: Mo 5. Dez 2005, 13:15
- Receivertyp: TF7700HDPVR, SRP-2100, SRP-2410CI+Eco
- Receiverfirmware: aktuell :)
- Wohnort: Fürth
- Kontaktdaten:
AW: Kleiner Denksport- (und Logik?-) Thread
Bootlader schreiben? Na gut, da sind die Anforderungen ein bisschen anders. Das hab ich zumindest mal für nen 486er gemacht, da ist im Hochlauf noch so eine tolle Mischung mit 16bit Daten und 32bit Adressen. Oder umgekehrt? Schon so lange her. Und da musste deshalb der essentielle Code, um die Platine aus dem Sumpf zu ziehen, eh in Assembler geschrieben werden. Und ja, ich hab das Problem irgendwie nicht richtig gelesen. Böse, böse. Aber jetzt bin ich zu... müde? Oder so... zum Denken
- hagge
- Jung-Guru
- Beiträge: 1921
- Registriert: Fr 9. Dez 2005, 15:43
- Receivertyp: SRP-2401CI+, TF5000PVR
- Wohnort: Stuttgart
AW: Kleiner Denksport- (und Logik?-) Thread
Wenn noch jemand knobeln will, bitte sagen. Sonst kommt heute gegen Abend die Auflösung (bzw. meine Version).
Gruß,
Hagge
Gruß,
Hagge
- hagge
- Jung-Guru
- Beiträge: 1921
- Registriert: Fr 9. Dez 2005, 15:43
- Receivertyp: SRP-2401CI+, TF5000PVR
- Wohnort: Stuttgart
AW: Kleiner Denksport- (und Logik?-) Thread
OK, also hier mal meine Lösung:
Was mich seinerzeit so irritiert hatte war, dass obwohl die Schleife mit break endet, was ja eigentlich auf eine do-while-Schleife hindeutet, es trotzdem nicht mit einer do-while-Schleife klappt.
Gruß,
Hagge
Code: Alles auswählen
char *skip(char *p)
{
char c;
for (; ;) {
c = p[0];
if (c == '/') {
p++;
continue;
}
if (c != '.')
break;
c = p[1];
if (c == '/') {
p += 2;
continue;
}
else if (c == '\0')
p++; /* kein continue, sondern break */
break;
}
return p;
}
Gruß,
Hagge
- hagge
- Jung-Guru
- Beiträge: 1921
- Registriert: Fr 9. Dez 2005, 15:43
- Receivertyp: SRP-2401CI+, TF5000PVR
- Wohnort: Stuttgart
AW: Kleiner Denksport- (und Logik?-) Thread
Neulich waren in einem Heftchen vom Kaufland wieder diese vermeintlich einfachen Rätsel drin,wo man einfach ein paar Zahlen addieren und subtrahieren muss, oder multiplizieren und dividieren. Letzteres hatte ich dann tatsächlich in wenigen Minuten gelöst.
Hier müssen die Zahlen 1-9 so verteilt werden, dass die Rechnungen horizontal und vertikal stimmen.
Aber das andere mit dem Addieren und Subtrahieren stellte sich als ungleich schwerer heraus. Wieder müssen die Zahlen 1-9 so verteilt werden, dass die Rechnungen horizontal und vertikal stimmen.
Vermutlich ist man wirklich mit Probieren am schnellsten. Aber versucht mal durch reines Argumentieren zur Lösung zu kommen. Mich würde auch der Lösungsweg interessieren.
Gruß,
Hagge
Hier müssen die Zahlen 1-9 so verteilt werden, dass die Rechnungen horizontal und vertikal stimmen.
Code: Alles auswählen
x : = 16
x x x
x : = 15
x : x
x x = 42
= = =
40 6 42
Code: Alles auswählen
- + = 6
+ + +
+ - = 2
+ - -
+ + = 9
= = =
16 7 6
Gruß,
Hagge
- ewgh
- Ex-Downgraded to 224 Postings
- Beiträge: 11063
- Registriert: Fr 9. Dez 2005, 13:07
- Wohnort: CH-8592
AW: Kleiner Denksport- (und Logik?-) Thread
Der Versuch eines Beitrages!Vermutlich ist man wirklich mit Probieren am schnellsten. Aber versucht mal durch reines Argumentieren zur Lösung zu kommen. Mich würde auch der Lösungsweg interessieren.
Gruß,
Hagge
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Gruss
ewgh
ewgh
- hagge
- Jung-Guru
- Beiträge: 1921
- Registriert: Fr 9. Dez 2005, 15:43
- Receivertyp: SRP-2401CI+, TF5000PVR
- Wohnort: Stuttgart
AW: Kleiner Denksport- (und Logik?-) Thread
Kleine Anmerkung zu Deiner Lösung von Rätsel 1: Wieso gehst Du gleich am Anfang davon aus, dass in Zeile 1 Zweierpotenzen sein müssen? 8 * 6 : 3 ginge doch auch wunderbar. Dann fordert Spalte C den Wert 2 für C2, wodurch nun die zweite Zeile 5 * 6 : 2 heißen müsste, was aber nicht geht, da die 6 in diesem Fall schon in der ersten Zeile verwendet wurde. Darum kann man diese Variante in der Folge tatsächlich ausschließen, aber zumindest andenken muss man sie eigentlich schon.
Beim Rätsel 2: Man kann noch eine 8. Gleichung definieren, denn man kennt z.B. auch das Produkt der 9 Zahlen. Aber dann reicht es immer noch nicht.
Ansonsten wundert es mich, dass noch keine anderen Lösungsansätze kamen. Kommt euch das Rätsel 2 mit dem Addieren und Subtrahieren zu banal vor? Keine Bange, dem ist nicht so, ich hatte es nach zwei Stunden noch nicht raus! Genau darum stelle ich es ja hier.
Gruß,
Hagge
Beim Rätsel 2: Man kann noch eine 8. Gleichung definieren, denn man kennt z.B. auch das Produkt der 9 Zahlen. Aber dann reicht es immer noch nicht.
Ansonsten wundert es mich, dass noch keine anderen Lösungsansätze kamen. Kommt euch das Rätsel 2 mit dem Addieren und Subtrahieren zu banal vor? Keine Bange, dem ist nicht so, ich hatte es nach zwei Stunden noch nicht raus! Genau darum stelle ich es ja hier.
Gruß,
Hagge
Zuletzt geändert von hagge am Mi 5. Dez 2012, 10:40, insgesamt 1-mal geändert.
- ewgh
- Ex-Downgraded to 224 Postings
- Beiträge: 11063
- Registriert: Fr 9. Dez 2005, 13:07
- Wohnort: CH-8592
AW: Kleiner Denksport- (und Logik?-) Thread
Dein Einwand ist richtig! Hab's nur nicht erwähnt!Kleine Anmerkung zu Deiner Lösung von Rätsel 1: Wieso gehst Du gleich am Anfang davon aus, dass in Zeile 1 Zweierpotenzen sein müssen? 8 * 6 : 3 ginge doch auch wunderbar. Dann fordert Spalte C den Wert 2 für C2, wodurch nun die zweite Zeile 5 * 6 : 2 heißen müsste, was aber nicht geht, da die 6 in diesem Fall schon in der ersten Zeile verwendet wurde. Darum kann man diese Variante in der Folge tatsächlich ausschließen, aber zumindest andenken muss man sie eigentlich schon.
Diese achte Gleichung ist abhängig von der siebten; sie liefert keine "neuen Erkenntnisse". Sie ist also keine "neue" Gleichung!Beim Rätsel 2: Man kann noch eine 8. Gleichung definieren, denn man kennt z.B. auch das Produkt der 9 Zahlen. Aber dann reicht es immer noch nicht.
oder:
(Wenn du die Summe der neun Zahlen kennst, so kennst du auch ihr Produkt.)
besser:
Im Wissen drum, dass es sich um die ersten neun natürlichen Zahlen handelt, ist es einerlei dies über die Summe oder das Produkt (oder allenfalls noch auf andere Weise) zum Ausdruck zu bringen.
Von "banal" kann keine Rede sein, wie du selber feststellst. Es läuft auf eine Probiererei hinaus, was mich zur Bemerkung veranlasste, dass mich dies nicht reize!Ansonsten wundert es mich, dass noch keine anderen Lösungsansätze kamen. Kommt euch das Rätsel 2 mit dem Addieren und Subtrahieren zu banal vor? Keine Bange, dem ist nicht so, ich hatte es nach zwei Stunden noch nicht raus! Genau darum stelle ich es ja hier.
NB:
Hast du die Lösung?!
Zuletzt geändert von ewgh am Mi 5. Dez 2012, 12:50, insgesamt 1-mal geändert.
Grund: siehe: "besser"
Grund: siehe: "besser"
Gruss
ewgh
ewgh
- hagge
- Jung-Guru
- Beiträge: 1921
- Registriert: Fr 9. Dez 2005, 15:43
- Receivertyp: SRP-2401CI+, TF5000PVR
- Wohnort: Stuttgart
AW: Kleiner Denksport- (und Logik?-) Thread
ewgh hat geschrieben:Diese achte Gleichung ist abhängig von der siebten; sie liefert keine "neuen Erkenntnisse". Sie ist also keine "neue" Gleichung!
oder:
(Wenn du die Summe der neun Zahlen kennst, so kennst du auch ihr Produkt.)
Bist Du sicher? Wenn ich von drei Zahlen weiß, dass ihre Summe 6 ist, dann ist das doch weniger als wenn ich auch noch weiß, dass ihr Produkt 4 ist. Und nein, ich kenne ihr Produkt noch lange nicht, wenn ich die Summe kenne.
In unserem Fall wissen zwar *wir*, dass es sich um die ersten 9 Zahlen handelt und auch alle verschieden sein müssen, aber mathematisch ist dieses Wissen ansonsten noch nirgendwo eingeflossen. Also bringt meiner Meinung nach diese Produktgleichung tatsächlich eine weitere mathematische Erkenntnis ein.
Vielleicht kann man auf diese Weise auch noch auf eine neunte Gleichung kommen. Denn vielleicht kann man die Argumentation zumindest so weit treiben, dass man eine Zahl findet oder zumindest nochmal etwas über die Summe von zwei oder drei Zahlen aussagen kann, was nicht schon über die Zeilen und Spalten bekannt ist.
Ich habe auch schon überlegt, ob einem die acht Gleichungen nicht auch schon ausreichen. Denn da muss ja am Ende mit einem Gleichungslöseverfahren (z.B. nach Gauß) herauskommen, dass eine Zahl das Soundsovielfache der anderen Zahl ist. Hierdurch verbleiben vielleicht nur noch ein oder zwei Möglichkeiten der Lösung. Kommt zum Beispiel raus: C1 = 2/7*B2 + 1, dann muss B2=7 und C1=3 sein.
Konsequent durchexerziert habe ich das aber bisher auch noch nicht.
Aha, dann siehst Du also auch keinen Weg, noch weiter durch Argumentieren zu kommen, ohne zu probieren? Ich habe dann irgendwann auch aufgegeben und noch ein paar wenige Kombinationen durchprobiert und so die Lösung erhalten. Aber sollte das wirklich ein Rätsel sein, wo man nur durch Probieren zur Lösung kommt? Üblicherweise gehen solche Rätsel doch über Argumentationsketten zu lösen, oder? Sind wir nur zu dumm, diese Lösung zu finden?Von "banal" kann keine Rede sein, wie du selber feststellst. Es läuft auf eine Probiererei hinaus, was mich zur Bemerkung veranlasste, dass mich dies nicht reize!
Gruß,
Hagge
- ewgh
- Ex-Downgraded to 224 Postings
- Beiträge: 11063
- Registriert: Fr 9. Dez 2005, 13:07
- Wohnort: CH-8592
AW: Kleiner Denksport- (und Logik?-) Thread
Das ist richtig!In unserem Fall wissen zwar *wir*, dass es sich um die ersten 9 Zahlen handelt und auch alle verschieden sein müssen, aber mathematisch ist dieses Wissen ansonsten noch nirgendwo eingeflossen.
Wenn es der Terminkalender zulässt [ ;-) ], möchte ich mich nochmals - eingehender - mit dem Problem befassen.
Gruss
ewgh
ewgh
- Anthea
- Boarddoktor
- Beiträge: 10662
- Registriert: Mo 5. Dez 2005, 13:15
- Receivertyp: TF7700HDPVR, SRP-2100, SRP-2410CI+Eco
- Receiverfirmware: aktuell :)
- Wohnort: Fürth
- Kontaktdaten:
AW: Kleiner Denksport- (und Logik?-) Thread
Code: Alles auswählen
4
6 2
9 3 1
19 10 7 ?
- Julian
- bekennender Fiesling Banause und Gemeinheit-Fan mit Herz für Topfazubis
- Beiträge: 9910
- Registriert: Di 10. Okt 2006, 11:16
- Receivertyp: TF5500PVR
- Receiverfirmware: Jan 2007
- Wohnort: Nieder-Liebersbach
AW: Kleiner Denksport- (und Logik?-) Thread
6 ????
FF
Julian
----------------------------------------------------------------------
TAPs (Autostart):
NiceDisplay, Power Restore
Julian
----------------------------------------------------------------------
TAPs (Autostart):
NiceDisplay, Power Restore
- macfan
- Ex-iTiNa-Promoter
- Beiträge: 24968
- Registriert: Fr 9. Dez 2005, 10:16
- Receivertyp: 2 x TF 2401 CI+, 2100, 5200 C, VU+ Ultimo 4K
- Receiverfirmware: SRP-Serie: die neueste, 5k: Jan 07 PTU, VU+ VTi 15.0
- Wohnort: Dortmund
AW: Kleiner Denksport- (und Logik?-) Thread
6
EDIT: Mist, 4 Sekunden
Gruß, Horst
EDIT: Mist, 4 Sekunden
Gruß, Horst
- Anthea
- Boarddoktor
- Beiträge: 10662
- Registriert: Mo 5. Dez 2005, 13:15
- Receivertyp: TF7700HDPVR, SRP-2100, SRP-2410CI+Eco
- Receiverfirmware: aktuell :)
- Wohnort: Fürth
- Kontaktdaten:
AW: Kleiner Denksport- (und Logik?-) Thread
Pah, ihr seid einfach zu schnell. Ich hätte es doch mit 7-Stelligen Zahlen machen müssen statt nur mit so einfachen welchen