ALGORITHMEN - Teil XIV: Jetzt noch irrer!

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Das ist insoferne richtig, als Heinz mit 2 Euro genug Kleingeld für seinen Einkauf dabei hätte.
      Die Frage sollte präziser gestellt werden - Danke für deinen Hinweis!
      Gruss

      P.S.: Fehlerbildvergleicher: Update mit weiterem Beispiel (Link im Beitrag weiter oben)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von p. specht ()

    • Genauere Lösung zu NR.14
      Spoiler anzeigen

      Lösung Neues Rätsel 14:
      -------------------------
      Kunde A:
      2 + 1 Äpfel = 3 Äpfel
      3 Äpfel = 3 €
      1 Apfel = 1 Eur
      -----------------
      Kunde B:
      1 Apfel + 2 Bananen = 1.80 Euro
      also 1 Euro + 2 Bananen = 1.80 Euro
      also 2 Bananen = 1.80 Euro - 1 Euro = 0.80 Euro
      1 Banane = 0.40 Eur
      --------------------
      Kunde C: Umtausch
      1 Banane minus 1 Kokosnuss = 20 EuroCent
      0.40 Euro - 1 Kokosnuss = 0.20 Eur | + 1 Kokosnuss
      0.40 Euro = 0.20 Euro + 1 Kokosnuss | - 0.20 Eur
      0.40 Euro - 0.20 Euro = 1 Kokosnuss
      0.20 Euro = 1 Kokosnuss
      1 Kokosnuss = 0.20 Eur
      ----------------------
      Heinz will kaufen:
      1 Kokosnuss + 1 Apfel + 1 Banane = ?
      0,20 Eur + 1 Eur + 0.40 Eur
      Daher reichen im Prinzip 1,60 Eur aus.
    • Abt. Quantencomputer online
      ===================
      Quantencomputer sind nun Realität. Fa. IBM hat eine sehr einfache Version davon nun zum experimentieren online gestellt. Das via Cloud verfügbare System besteht aus 5 Josephson-Kontakten, die auf 0.15 Kelvin nahe dem absoluten Nullpunkt der Temperatur heruntergekühlt werden und mit Hochfrequenzimpulsen präpariert und ausgelesen werden können. Dadurch können interagierrende Atombindungen "nachvollzogen" werden, ohne daß für solche Berechnungen Zeit vergeht (Einsteins "Instantante Fernwirkung" bzw. "spooky action at a distance"). Hier das Link zu diesem Online-Quantencomputer und den entsprechenden Tutorials.

      Gruss

      P.S.: Mit 5 qbits können 2^5 = 32 Zustände gleichzeitig auf Optimalität berechnet werden. Reale Systeme, die auf dem von IBM verwendeten Prinzip basieren, stehen derzeit bei 16 qbits (= 65.536 Zustände gleichzeitig), während Konkurrent D-Wave das Prinzip des Quanten-Halleffektes nutzt und beii 256 bzw. 512, demnächst 1024 qbit steht, diie allerdings statistisch ausgelesen werden müssen, was wiederum Zeit kostet. Spätestens dann aber sind auf Faktoriesierung beruhende Cryptographiesysteme leicht entschlüsselbar, und bitcoin-Farmen zur Generierung neuer elektronischer Währungen werden obsolet, weil dann elektronisches Geld wie Heu erzeugt werden kann...
    • @Heinz: Die Antwort war jedenfalls nicht falsch. Aber auch meine Preisangaben waren nicht realistisch: In den letzten 5 Jahren sind Lebensmittelpreise durchschnittlich um 26% gestiegen, die Butter bei uns in Österreich zuletzt um 43% - Und da will man uns eine Inflationsrate von 2 % weismachen ...
    • Abt. Neue Rätselecke Nr.15: "Wieviele Stufen?"
      ==============================
      Karl möchte die Anzahl der sichtbaren Stufen einer herablaufenden Rolltreppe wissen.
      - Dazu läuft er die Rolltreppe entgegen der Fahrtrichtung hoch und zählt dabei 90 Stufen.
      - Dann läuft er die Treppe im gleichen Tempo wieder hinunter und zählt 60 Stufen.
      Wie viele Stufen sind sichtbar, wenn die Rolltreppe sich nicht bewegt?
      Gruss

      P.S.: Kleiner Hinweis: Es sind nicht 75.
    • Lösung zu NR 15:
      Spoiler anzeigen
      Lösung zum Neuen Rätsel Nr. 15:

      Die Rolltreppe habe die Länge "L sichtbare Stufen".
      Die Rolltreppe bewegt sich mit der Geschwindigkeit Vr.
      Karl bewegt sich relativ zur Rolltreppe mit der Laufgeschwindigkeit Vk.
      Beim Hinauflaufen subtrahiert sich die Geschwindigkeit der Rolltreppe
      von der des Läufers: 1) L = 90 * (Vk - Vr)
      Beim Hinunternlaufen addieren sich die Geschwindigkeiten:
      2) L = 60 * (Vk + Vr)

      Durch Gleichsetzen von 1) = 2) ergibt sich das Geschwindigkeitsverhältnis:
      90 * Vk - 90 * Vr = 60 * Vk + 60 * Vr , bzw.
      90 * Vk - 60 * Vk = 90 * Vr + 60 * Vr , d.h.
      30 * Vk = 150 * Vr , und somit:
      Vk = 150 / 30 * Vr = 15/3 * Vr = 5 * Vr, anders ausgedrückt:
      Vk/Vr=5 (Karl läuft 5 mal schneller als die Rolltreppe).

      Dieses Zwischenergebnis setzen wir nun in eine der Ansatzgleichungen ein:
      ad 1) L = 90 * (Vk - 1/5 Vk) = 90 * 4/5 = 360/5 = 72 Stufen; Probe:
      ad 2) L = 60 * (Vk + 1/5 Vk) ) 60 * 6/5 = 360/5 = 72 Stufen - q.e.d.

      Oder: "Physikalische Methode" mit dem Harmonischen Mittel über die 2 Laufstrecken:
      cls: print "\n L =",2/(1/90 + 1/60):waitinput
    • Abt. Neue Rätselecke Nr. 17: "Glatt bezahlen können"
      =======================================
      Wie viele Geldstücke muss man mindestens bei sich führen, damit man alle Beträge zwischen 0,01 € und 2,00 € genau passend zahlen kann? Es gibt bekanntlich 1, 2, 5, 10, 20 und 50-Cent-Münzen sowie 1- und 2-Euro.
      Gruss

      Spoiler anzeigen
      Lösung: Man benötigt in diesem Fall genau 9 Münzen:
      Um die Einerstelle des Cent-Betrages bezahlen zu können: 1ct, 2ct, 2ct, 5ct (Summe: 10 Cent)
      Um die Zehnerstelle des Cent-Betrages bezahlen zu können: 10ct, 20ct, 20ct, 50ct (Laufende Summe: 1,10 Eur)
      Um jeden Betrag zwischen 1 Eur und 2 Eur bezahlen zu können, fehlt noch eine 1-Euro-Münze (Gesamtsumme 2.10 Eur)
      Das Prinzip lässt sich entsprechend fortsetzen.

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von p. specht () aus folgendem Grund: Programmierfehler (Urgs)

    • Abt. Minimale Geld-Stückelung beim Bezahlen
      ================================
      (Testprogramm, u.a. zum obigen Rätsel)

      Quellcode

      1. WindowTitle upper$("Stückelung")
      2. WindowStyle 24:Window 0,0-%maxx,%maxy:font 2:Cls
      3. declare m&[20],g&,Betrag& , zeig&
      4. zeig&=1
      5. m&[0]=1:m&[1]=2:m&[2]=2:m&[3]=5:m&[4]=10:m&[5]=20:m&[6]=20:
      6. m&[7]=50:m&[8]=100:m&[9]=200:m&[10]=200:m&[11]=500
      7. m&[12]=1000:m&[13]=2000:m&[14]=2000:m&[15]=5000
      8. m&[16]=10000:m&[17]=20000:m&[18]=20000:m&[19]=50000:m&[20]=50000
      9. whileloop 1,161111,1:Betrag&=&Loop
      10. g&=sizeof(m&[])-1
      11. if zeig&
      12. print "\n ";format$("###,##0.00 Eur",Betrag&/100);" = ";
      13. else
      14. if rnd()<0.0005:cls:print "\n ";Betrag&
      15. endif
      16. endif
      17. GibHeraus(g&,Betrag&)
      18. endwhile
      19. beep:waitinput:end
      20. proc GibHeraus :parameters g&,Rest&
      21. if Rest&>161110:print " *** TEST OVERFLOW ERROR ***";
      22. sound 100,70:waitinput 6000:return
      23. endif
      24. declare flg&
      25. while g&>=0
      26. if (Rest&-m&[g&])>=0
      27. case flg&:print " + ";
      28. if zeig&:print format$("#0.00",m&[g&]/100);:flg&=1:endif
      29. Rest&=Rest&-m&[g&]
      30. endif
      31. dec g&
      32. endwhile
      33. endproc
      Alles anzeigen
    • Abt. Was ist Mathematik eigentlich?
      ===========================
      Hier diskutiert ein Mathematiker die Frage, ob es sich bei Mathe um eine Naturwissenschaft, Kulturwissenschaft, Ingenieurwissenschaft, Geisteswissenschaft, Formalwissenschaft oder was eigentlich handelt. Ich dachte eigentlich immer eine Geisteswissenschaft!? Pustekuchen ... Youtube-Link (deutsch)
      Gruss
    • Abt. Was bin ich?
      ===========
      Wusstet Ihr, daß ein durchschnittlicher Mensch aus rund 500.000.000.000.000.000.000.000.000 Atomen besteht? Aufgeschlüsselt nach Atomarten sieht die Verteilung in etwa so aus:

      Element, Anteil Atome
      -------------------------
      Wasserstoff (H) 63 %
      Sauerstoff (O) 25.5 %
      Kohlenstoff (C) 9.5 %
      Stickstoff (N) 1.4 %
      Calcium 0.31 %
      Chlor (Cl) 1 %
      Phosphor (P) 1 %
      Kalium (K) 0.06 %
      Schwefel (S) 0.05 %
      Natrium (Na) 0.03 %
      Magnesium (Mg) 0.01 %
      ...
      Wir sind also im Wesentlichen Kohlenstoff-organisierte Wassersäcke *).
      Gruss

      P.S.: Details hier!
      ________
      *) Bei manchen Zeitgenossen hatte ich diese Vermutung schon...
    • Abt. Problem bei Sortierter Gridbox mit Mehrfachauswahl
      ==========================================
      Es scheint ein Problem zu geben, in sortierten Gridboxen mit Mehrfachauswahl die selektierte Zeile anzuzeigen, wenn sie nicht im Scrollfenster der Gridbox liegt. Horst Horn hatte das in diesem Board angesprochen. Für eine XProfan-11-taugliche Variante habe ich Lösungsvorschläge von Jörg Sellmeyer, Jörg Greve und Heinz Brill kombiniert - und alles wäre gut, wenn bei Typ 3-Gridbox ("Sortierte Mehrfachauswahl") nicht gleich 2 Elemente hintereinander blau hinterlegt dargestellt würden.

      Hat jemand eine Idee,, warum das passiert?
      SetCurSel-Befehlsersatz für Xprofan-11 klappt nicht? Es gibt nämlich Beispiele, wo das in Version 11.2a sehr wohl klappt. Frosch zu doof?

      Gruss

      Quellcode

      1. WindowTitle "ScrollMarkShow_SortedGrid"
      2. Window 0,0-600,400
      3. Declare gb%, btn1%, sp$
      4. sp$ = "Nummer;0;60;Name;0;100;"
      5. btn1% = Create("Button", %HWnd, "DATEN", 10, 10, 60, 25)
      6. gb% = Create("Gridbox", %HWnd, sp$, 3, 10, 50, 180, 150)
      7. FuelleGB()
      8. UserMessages $0010
      9. WhileNot %Umessage = $0010
      10. WaitInput
      11. If Clicked(btn1%)
      12. ClearList gb%
      13. FuelleGB()
      14. EndIf
      15. EndWhile
      16. Proc FuelleGB
      17. Declare z&
      18. z& = 0
      19. WhileLoop 0, 150
      20. LvDeSelect(gb%, -1) ' alle deselektieren
      21. z& = AddString(gb%, Str$(&LOOP) + "|" + ".Eintrag")
      22. LvSelect(gb%, z&)
      23. LvSetCurSel gb%, z&
      24. EndWhile
      25. EndProc
      26. Proc LvDeSelect
      27. Parameters Lv&,Item&
      28. Declare s#
      29. Dim s#,1024
      30. Long s#,12=0
      31. Long s#,16= $0002 | $0001 ' ~LVIS_SELECTED | ~LVIS_FOCUSED
      32. SendMessage(Lv&, $1000 + 43,Item&,s#) ' Lv&,~LVM_SETITEMSTATE = ~LVM_FIRST + 43
      33. Dispose s#
      34. EndProc
      35. Proc LvSelect
      36. Parameters Lv&,Item&
      37. Declare s#
      38. Dim s#,1024
      39. Long s#,12=$2
      40. Long s#,16= $0002 | $0001 ' ~LVIS_SELECTED | ~LVIS_FOCUSED
      41. SendMessage(Lv&, $1000 + 43,Item&,s#) '~LVM_SETITEMSTATE = ~LVM_FIRST + 43
      42. SendMessage(lv&, $1000 + 60,item&,0) '~LVM_SETHOTITEM = ~LVM_FIRST + 60
      43. SendMessage(lv&, $1000 + 19,Item&,0) '~LVM_ENSUREVISIBLE = ~LVM_FIRST + 19
      44. Dispose s#
      45. Endproc
      46. Proc LVSetCurSel :Parameters LV&,pos%
      47. Selectstring(LV&,pos%-1,Getstring$(LV&,pos%))
      48. SendMessage(LV&,4115,pos%,0)
      49. Endproc
      50. End
      Alles anzeigen

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von p. specht ()