Dodaj do ulubionych

Algorytm Mnozenia

IP: *.cust.uk.viatel.net 18.09.08, 11:49
Nie moge sobie poradzic z tym problemem, a nurtuje mnie od jakiegos
czasu. Czy moglby ktos mi pomoc jak powinien wygladac algorytm
mnozenia. Chodzi mi o to zebym mogl pomnozyc dwie dowolne liczby,
ale za pomoca 2 badz wiecej petli.
Obserwuj wątek
    • Gość: Lucek Re: Algorytm Mnozenia IP: *.cust.uk.viatel.net 18.09.08, 15:21
      Ok dla przykladu jesli chcialbym algorytm dodawania to wygladalby on
      nastepujaco:


      Liczba.1
      Liczba.2


      While liczba.1>0
      Liczba.1 = Liczba.1 – 1
      Liczba.2 = Liczba.2 + 1
      End


      Ale czy wie ktos jak powinien wygladac algorytm na mnozenie 2
      dowolnych liczb calkowitych?
      • Gość: braat1 Re: Algorytm Mnozenia IP: 217.116.98.* 19.09.08, 08:13
        Nie rozumiem problemu, mnozenie to wielokrotne dodawanie.
        • Gość: Lucek Re: Algorytm Mnozenia IP: *.cust.uk.viatel.net 19.09.08, 09:25
          Jesli uwazasz ze mnozenie to wielokrotne dodawanie. To jaki algorytm
          bys do tego napisal? Dalem przyklad jak powinien wygladac algorytm
          na dodawanie.
      • silic Re: Algorytm Mnozenia 19.09.08, 09:41
        Może tak:

        liczba1
        liczba2
        wynik=liczba2

        jeśli liczba1>0 to
        wynik=wynik+liczba2
        liczba1=liczba1-1
        • Gość: Lucek Re: Algorytm Mnozenia IP: *.cust.uk.viatel.net 19.09.08, 14:34
          silic napisał:

          > Może tak:
          >
          > liczba1
          > liczba2
          > wynik=liczba2
          >
          > jeśli liczba1>0 to
          > wynik=wynik+liczba2
          > liczba1=liczba1-1
          >
          >



          TO jest dobre rozwiazanie, ale wyobraz sobie ze jezyk w ktorym
          programujesz, nie rozumie czegos takiego: "wynik=liczba2". Mozesz
          tylko dodawac badz tez odejmowac cos do swojej liczby. Mialem takie
          zadanie, chodzilo o bardzo prymitywny jezyk programowania. Dozwolone
          byla tylko incr i decr. Jakies pomysly?
          • Gość: flm Re: Algorytm Mnozenia IP: *.neoplus.adsl.tpnet.pl 19.09.08, 18:41
            > TO jest dobre rozwiazanie, ale wyobraz sobie ze jezyk w ktorym
            > programujesz, nie rozumie czegos takiego: "wynik=liczba2". Mozesz
            > tylko dodawac badz tez odejmowac cos do swojej liczby. Mialem takie
            > zadanie, chodzilo o bardzo prymitywny jezyk programowania. Dozwolone
            > byla tylko incr i decr. Jakies pomysly?

            Piszesz, że dozwolone są tylko incr i decr, a w poprzednim przykładzie użyłeś
            też pętli z porównaniem. To jakie operacje w końcu są dostępne?
          • diabel-tasmasnki Re: Algorytm Mnozenia 19.09.08, 21:46
            Mialem takie
            > zadanie, chodzilo o bardzo prymitywny jezyk programowania. Dozwolone
            > byla tylko incr i decr. Jakies pomysly?

            zadając pytanie powinieneś zdefiniować o jaki język chodzi. Instrukcja pętli w
            przeciwieństwie do instrukcji warunkowej nie jest niezbędna by jezyk był zupełny.
            • Gość: Lucek Re: Algorytm Mnozenia IP: *.cust.uk.viatel.net 22.09.08, 09:14
              Chodzi o BareBones, ale nie wiem czy slyszales o nim.
              • qandre Re: Algorytm Mnozenia 22.09.08, 15:04
                www.mhuffman.com/jscript/barebone.htm

                Sample 3
                • qandre Re: Algorytm Mnozenia 22.09.08, 16:46
                  No dobrze, przyznaję że podałem linka raczej bezrefleksyjnie. Przykład na stronie jest specyficzny i nie rozwiązuje problemu.

                  Uniwersalna wersja X * Y może wyglądać tak:

                  clear Z;

                  while Y;


                  clear temp;
                  clear kopiaX;

                  while X;
                  incr temp;
                  decr X;
                  end;

                  while temp;
                  incr kopiaX;
                  incr X;
                  decr temp;
                  end;


                  while kopiaX;
                  decr kopiaX;
                  incr Z;
                  end;

                  decr Y;

                  end;
              • diabel-tasmasnki Re: Algorytm Mnozenia 22.09.08, 18:21
                wyobraź sobie że nie słyszałem, ale skorzystałem z google i po chwili znalazłem
                nawet dwie różne definicje tego języka. Przykład który podałeś jest błędny w
                myśl obu tych definicji. Widać korzystasz z jeszcze innej, znanej tylko sobie
                definicji tego języka.
                • diabel-tasmasnki Re: Algorytm Mnozenia 22.09.08, 18:50
                  postanowiłem cie wkurzyć i napisałem ten program, ale ponieważ nie chciałeś
                  podać definicji języka wybrałem sobie taka definicje która mi pasowała
                  tiny.pl/8kxq

                  # x,y wejście, w - wyjście

                  clear w;
                  clear y1;

                  while x not 0 do;
                  decr x;
                  copy y to y1;
                  while y1 not 0 do; # y1 razy zwiekszamy wynik
                  incr w;
                  decr y1;
                  end;
                  end;
        • Gość: Lucek Re: Algorytm Mnozenia IP: *.cust.uk.viatel.net 19.09.08, 14:47
          W zasadzie i tak ten algorytm nie dziala wezmy liczby 2 i 3


          liczba1 = 2
          liczba2 = 3
          wynik = 3

          jesli liczba1(2)>0
          wynik(6)=wynik(3)+liczba2(3)

          i druga petla
          jesli liczba1(1)>0
          wynik(9)=wynik(6)+liczba2(3)


          zatem wynik jest bledny bo wynosi 9 w drugiej petli wartosc wyniku
          wynosi juz 6
          • silic Re: Algorytm Mnozenia 20.09.08, 11:08
            W zasadzie to wystarczy pomniejszyć liczbę warunkującą pętlę o jeden i powinno
            działać. Chciałem przedstawić tylko zasadę.
Inne wątki na temat:

Nie masz jeszcze konta? Zarejestruj się


Nakarm Pajacyka