ALGORITHMEN - Teil XXII: Paradoxe Paradoxien

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

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • Lösung zu PR 8
      --------------------
      Spoiler anzeigen


      A) Alter Joseph = 80, Alter Pepe = 54
      Altersunterschied = 80 - 54 = 26 [Jahre]
      Wegen AJ - AP = 26 gilt:
      AJ = 26 + AP

      B) Alter_wo_Joseph_3mal_so_alt_war_wie_Pepe:
      AJ = 3 * AP
      Eiinsetzen in A) liefert:
      3 * AP = 26 + AP ,
      3 * AP - AP = 26
      2 * AP = 26
      AP = 26 / 2 = 13
      Pepe war also 13, als Joseph dreimal so alt war:
      AJ = 3 * AP = 3 * 13 = 39

      C) Check: 39 - 13 = 26 ... OK

      D) Die Frage war aber sozusagen, wie lange das her ist.
      Joseph ist nun 80, war damals 39.
      80 minus 39 = 41 [Jahre, als Zeitspanne gerechnet]

      Antwort: Joseph war vor 41 Jahren dreimal so alt wie sein Sohn Pepe.


      P.S.: PR 10 und PR 11 sind dzt. noch offen.
    • Abt. Vier-Minuten-Wecker
      ==================

      Quellcode

      1. Windowstyle 24
      2. Window %maxx/2-100,(%maxy/2-100) - 200,77
      3. UseIcon "MUENZE":Font 2
      4. Declare tm&
      5. tm&=&gettickcount + 1000*60*4\1
      6. Showmin
      7. Repeat
      8. if &gettickcount>tm&
      9. showNormal
      10. Windowtitle "ALARM seit "+str$((tm&-&gettickcount)\1000)+" s"
      11. CLS rgb(Rnd(256),Rnd(256),Rnd(256))
      12. locate 2,2
      13. print " FENSTER SCHLIESSEN! "
      14. sound 1000,60
      15. else
      16. Windowtitle "Alarm in "+str$((tm&-&gettickcount)\1000)+" s"
      17. endif
      18. waitinput 1000
      19. until (%key=27) or (%key=32)
      20. END
      Alles anzeigen
      Hier ein Liink zu einer identischen EXE-Datei. :pin: Bitte stets Viren-Test ausführen -
      meine Homepage ist nicht https-gesichert, Download und Nutzung daher auf eigene Gefahr!
    • Vielleicht hier mal was Alltagstaugliches :
      In einem Ordner in allen Dateien nach einem
      String suchen und die entsprechenden Zeilen
      ausgeben :

      Quellcode

      1. Declare Handle lb, liste, edit1, btn1, btn2
      2. Declare String pfad, such
      3. Declare Long ende
      4. ende = 0
      5. liste = Create("List", 1)
      6. WindowTitle "Text - Sucher"
      7. Window 800, 400
      8. Create("Text", %HWnd, "Suchstring", 10, 10, 90, 25)
      9. edit1 = Create("Edit", %HWnd, "", 100, 10, 180, 25)
      10. btn1 = Create("Button", %HWnd, "Ordner wählen", 10, 60, 120, 25)
      11. btn2 = Create("Button", %HWnd, "Start", 180, 60, 60, 25)
      12. lb = Create("Listbox", %HWnd, 0, 10, 120, 500, 200)
      13. WhileNot ende
      14. WaitInput
      15. If Clicked(btn1)
      16. pfad = ChooseDir$("Wähle Ordner !")
      17. ElseIf Clicked(btn2)
      18. such = GetText$(edit1)
      19. If pfad <> ""
      20. CHDIR pfad
      21. Else
      22. pfad = $CurrentDir
      23. EndIf
      24. If such <> ""
      25. ClearList liste
      26. ClearList 0
      27. Dateisuche()
      28. Else
      29. MessageBox("Bitte zuerst Suchstring eintragen", "Fehler", 0)
      30. EndIf
      31. EndIf
      32. Case %Key = 2 : ende = 1
      33. EndWhile
      34. Proc Dateisuche
      35. AddFiles "*.*"
      36. Move("ListToHandle", liste)
      37. ClearList
      38. ClearList lb
      39. Set("MoveListMode", 1)
      40. WhileLoop 0, GetCount(liste) - 1
      41. IfNot InStr("[", GetString$(liste, &LOOP))
      42. AddString(lb, GetString$(liste, &LOOP) + " Datum : " + DToc$(GetFDate$(GetString$(liste, &LOOP))) + " Zeit : " + GetFTime$(GetString$(liste, &LOOP)))
      43. Move("FileToList", GetString$(liste, &LOOP))
      44. AddString(lb, " ")
      45. EndIf
      46. EndWhile
      47. EndProc
      48. MoveListProc
      49. Parameters String s, Int i
      50. Set("RegEx", 1)
      51. If Get("MoveListMode") = 1
      52. If Match$(such, s) <> ""
      53. AddString(lb, Str$(i + 1) + ". Zeile " + s)
      54. EndIf
      55. EndIf
      56. Set("RegEx", 0)
      57. EndProc
      Alles anzeigen
      Lehrreich für die Verwendung von MOVELISTPROC.
      Vielleicht kann es ja jemand gebrauchen.
    • Lösung zu PR 10
      ----------------------
      Spoiler anzeigen

      Bei dieser dreistelligen Zahl ist die Zehnerziffer um fünf größer als
      die Einerziffer: Z = E + 5,
      die Hunderterziffer dagegen um acht weniger als die
      Zehnerziffer: H = Z - 8

      Z = E + 5
      H = Z - 8
      ===> Beginnen wir in der MItte, mit 5:
      H Z E
      -3 5 0 : Minus geht nicht
      0 8 3 : Null vorne geht auch nicht
      2 10 1: Zehn geht auch nicht, also 1 weniger:
      1 9 4
      ====
      Antwort: Die gesuchte Zahl lautet 194.
    • Neu

      Reingelegt: Du meinst (4^3)^2. Die meisten Computer würden so rechnen. Mathematisch richtig ist bei Potenzen aber das Rechnen von rechts nach links, 4^3^2 entspricht also eigentlich 4^(3^2) = 4^9 = 262144. Müssen Normalos aber nicht wissen, weil: Wann kommt das schon vor ...

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

    • Neu

      p. specht schrieb:

      Abt. PR 13
      ========
      Wäre es zwei Stunden später, so wäre die Zeit bis Mittag nur halb so lang als wenn es eine Stunde später wäre.
      Wie spät ist es in diesem Rätsel demnach?
      Die Frage enthält die Zahlen 2, 1/2 und 1. das grenzt schon mal die Distanzen ein...
      Spoiler anzeigen

      Also muss es 9.00 sein. Zwei Stunden, 11.00, später wäre es Mittag (12.00) noch 1 std.
      Nur 1 std später wäre es 10.00, dann sind's noch 2 std bis Mittag, also doppelt so viel.


      Rabe
      Computer setzen logisches Denken fort!
      Unlogisches auch....
    • Neu

      @ravenheart hat natürlich recht:
      Die Lösung zu PR 13 lautet 09:00 Uhr.
      Hier noch die mathematische Begründung.
      Spoiler anzeigen

      Mittag - (Uhrzeit + 2 [h]) = 1/2 * ( Mittag - (Uhrzeit + 1 [h]) )

      Mittag = 12 [Uhr], Uhrzeit (im Rätsel) sei x:

      12 - (x + 2) = 1/2 * ( 12 - (x +1) ) bzw.
      12 - x - 2 = 1/2 * ( 12 - x -1 ), anders gesagt:
      10 - x = ( 11 - x ) * 1/2 oder
      20 - 2*x = 11 - x, was bedeutet
      20 - 11 = 2*x - x, vereinfacht
      9 = x, und daher

      x = 9 [Uhr]
      ========