Wie kann ich das umsetzen?

  • Sry ich wusste nicht welche Überschrift ich genau nehmen soll...

    Also ihr kennt ja die schriftliche Multiplikation:

    ---457 x 45
    --------------
    ------18280
    ----+--2285
    --------------
    ------20565

    wisst ihr wie man das in AutoIt umsetzen kann? Hat das jemand schon mal gemacht? Damit wäre es doch möglich sehr große Zahlen zu multiplizieren oder täusch ich mich da?


    Grüße

  • klar oscar

    aber was er sicher meinte (entnehme ich mal der form)
    so eine art rechner für CMD.........
    Also so in C++ sind die befehl printf und scanf
    aber wie sowas in autoit mit ner cmd box gehen würde weiß ich grad auch net nur in C++ fällt mir das grad ein

  • hier ein bsp für zweistellig

    [autoit]

    $zahl = "12*13"
    $zahl2 = StringSplit($zahl,"*")
    $zahl3 = StringSplit($zahl2[2],"")
    $zahl4 = ($zahl3[1] * 10) * $zahl2[1] ; 10*12
    $zahl5 = $zahl3[2] * $zahl2[1] ;3*12

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,"",$zahl4 & " " & $zahl5)

    [/autoit]

    gruss Simon

  • Es geht mir dabei darum, unbegrenzt große Zahlen zu Multiplizieren.

    Ich hab mal etwas zusammengebastelt und komm nicht weiter. Kann mir bitte jemand dabei helfen?

    Spoiler anzeigen
    [autoit]

    _BigMulti("55", "11")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _BigMulti($Value_1, $Value_2)
    Local $Value1, $Value2
    Local $Split1 = StringSplit($Value_1, "")
    Local $Split2 = StringSplit($Value_2, "")

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To $Split1[0]

    [/autoit] [autoit][/autoit] [autoit]

    ;~ $Split1[$i] & _AddZero($Split1[0] - $i)

    [/autoit] [autoit][/autoit] [autoit]

    For $o = 1 To $Split2[0]
    $Value2 &= $Split2[$o] * $Split1[$i]
    Next

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "", $Value2)

    [/autoit] [autoit][/autoit] [autoit]

    $Value2 = ""
    ;~ $Value1 += $Value2

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;~ MsgBox(0, "",)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Return $Value_1
    EndFunc ;==>_BigMulti

    [/autoit] [autoit][/autoit] [autoit]

    Func _AddZero($Decimalplaces)
    Local $Return
    For $i = 1 To $Decimalplaces
    $Return &= "0"
    Next
    Return $Return
    EndFunc ;==>_AddZero

    [/autoit]
  • ich bin mir net sicher was du mit "unbegrentzt" meinst da verstehe ich irgendwie zahlen drunter die nicht nur groß sind XD
    Aber ich weiß auch garnet ob das mit autoir geht des das kann ja nur bis u ner gewissen zahl rechnen also würde ich mal vermuten das "unbegrentzt"
    nicht wirklich machbar ist ich lasse mich aber mal eines besseren behleren

    • Offizieller Beitrag

    Schau dir die Algorithmen im oben verlinkten Wettbewerb an :).
    Die können genau das: Unendlich große Zahlen multiplizieren (in Wahrheit ist die Grenze für beide Faktoren und das Ergebnis bei 4 Mio. Stellen) und das auch ordentlich schnell (sind eben im Wettbewerb optimiert worden). Soweit ich mich erinnere, gehen sie im Wesentlichen nach dem Schulprinzip vor.

    Viel Spaß damit!
    Johannes