[Maple] Multiplication en base b
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

[Maple] Multiplication en base b



  1. #1
    Seirios

    [Maple] Multiplication en base b


    ------

    Bonjour à tous,

    Je cherche à écrire une procédure sous maple pour pouvoir calculer le produit de deux nombres dans une base b. Je pensais avoir réussi à trouver quelque chose, mais lorsque j'ai essayé de tester ma procédure, maple m'affiche Error, (in mult) invalid subscript selector, mais je ne vois pas pourquoi ; voici ma procédure :

    Code:
    mult:=proc(n,m,b)
    > local p,n_1,m_1,r,q,k,j,i;
    > p:=nops(n)+nops(m); 
    > n_1:=[seq(0,k=1..p)];
    > m_1:=[seq(0,k=1..p)];
    > r:=[seq(0,k=1..p)];
    > q:=[seq(0,k=1..2*p)];
    > for j from 0 to nops(n)-1 do
    > n_1[p-j]:=n[nops(n)-j];
    > od;
    > for j from 0 to nops(m)-1 do
    > m_1[p-j]:=m[nops(m)-j];
    > od;
    > for j from 0 to p-1 do
    > for i from 0 to p-1 do
    > q[2*p-i]:=m_1[p-j]*n_1[p-i];
    > r[p-i]:=r[p-i]+q[p-i-j];
    > od;
    > od;
    > for j from 0 to p-1 do
    > while r[p-j]>b do
    > r[p-j]:=r[p-j]-1;
    > r[p-j-1]:=r[p-j-1]+1;
    > od;
    > od;
    > r;
    > end;
    Pour simplifier les choses, a et b sont des listes.

    Est-ce que quelqu'un pourrait m'indiquer si j'ai fait une erreur, ou bien me proposer une procédure alternative ?

    Merci d'avance
    Phys2

    -----
    If your method does not solve the problem, change the problem.

  2. #2
    phryte

    Re : [Maple] Multiplication en base b

    Bonsoir.
    Pour mettre n_1 et m_1 en tableau :
    >
    Code:
     restart:n:=123:m:=234:b:=10:nn:=n:mm:=m:
    >  p:=length(n): 
    
    >  n_1:=[seq(0,k=1..p)]:
    
    >  m_1:=[seq(0,k=1..p)]:
    
    >  r:=[seq(0,k=1..p)]:
    
    >  q:=[seq(0,k=1..2*p)]:
    
    >  for j from 1 to length(n) do
    
    > n_1[p-j+1]:=10*(nn/10^j-floor(nn/10^(j))):
    nn:=nn-n_1[p-j+1]*10^(j-1):
    >  od:
    
    > for j from 1 to length(m) do
    
    >  m_1[p-j+1]:=10*(mm/10^j-floor(mm/10^(j))):
    > mm:=mm-m_1[p-j+1]*10^(j-1):od:
    m_1:
    > n_1;m_1;

  3. #3
    phryte

    Re : [Maple] Multiplication en base b

    Citation Envoyé par phryte Voir le message
    Bonsoir.
    Pour mettre n_1 et m_1 en tableau :
    >
    Code:
     restart:n:=123:m:=234:b:=10:nn:=n:mm:=m:
    >  p:=length(n): 
    
    >  n_1:=[seq(0,k=1..p)]:
    
    >  m_1:=[seq(0,k=1..p)]:
    
    >  r:=[seq(0,k=1..p)]:
    
    >  q:=[seq(0,k=1..2*p)]:
    
    >  for j from 1 to length(n) do
    
    > n_1[p-j+1]:=10*(nn/10^j-floor(nn/10^(j))):
    nn:=nn-n_1[p-j+1]*10^(j-1):
    >  od:
    
    > for j from 1 to length(m) do
    
    >  m_1[p-j+1]:=10*(mm/10^j-floor(mm/10^(j))):
    > mm:=mm-m_1[p-j+1]*10^(j-1):od:
    m_1:
    > n_1;m_1;
    Un exemple pour l'addition :
    Code:
    restart:n:=101:m:=111:b:=2:nn:=n:mm:=m: pn:=length(n): pm:=length(m):p:=pn+pm:
    >  n_1:=[seq(0,k=1..pn)]:
    >  m_1:=[seq(0,k=1..pm)]:
    >  #r:=[seq(0,k=1..p)]:
    >  q:=[seq(0,k=1..pn+1)]:
    >  for j from 1 to length(n) do
    > n_1[pn-j+1]:=10*(nn/10^j-floor(nn/10^(j))):
    > nn:=nn-n_1[pn-j+1]*10^(j-1):od:
    > for j from 1 to length(m) do
    > m_1[pm-j+1]:=10*(mm/10^j-floor(mm/10^(j))):
    > mm:=mm-m_1[pm-j+1]*10^(j-1):od:
    > n_1;m_1;r:=0:  
    > for j from pn by -1 to 1 do
    > if n_1[j]+m_1[j]+r >= b then 
    > q[j+1]:=n_1[j]+m_1[j]+r mod b:r:=1;
    > else q[j+1]:=n_1[j]+m_1[j]+r: end  if;
    > od;q[1]:=r:q;nbdec:=0:
    > for j from pn+1 by -1 to 1 do
    > nbdec:=nbdec+q[j]*b^(pn+1-j):od:nbdec;

Discussions similaires

  1. Multiplication
    Par inviteaf68f0d4 dans le forum Mathématiques du collège et du lycée
    Réponses: 5
    Dernier message: 12/09/2009, 15h07
  2. [Biologie végétale] multiplication
    Par inviteea98018d dans le forum Biologie
    Réponses: 2
    Dernier message: 23/02/2009, 12h16
  3. Multiplication de puissances
    Par invite76d93f92 dans le forum Mathématiques du collège et du lycée
    Réponses: 5
    Dernier message: 17/02/2009, 15h02
  4. [Maple]Entiers sur maple
    Par FonKy- dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 09/08/2007, 17h55
  5. Multiplication
    Par Lévesque dans le forum Mathématiques du supérieur
    Réponses: 12
    Dernier message: 20/10/2005, 09h09