Division arrondie, supérieur et inférieur

Forum d'archive d'entraide mathématique
Anonyme

Division arrondie, supérieur et inférieur

par Anonyme » 30 Avr 2005, 16:15

Bonjour,

J'ai besoin de savoir quelles sont les formules mathématiques - s'il y en
a mais je suppose que oui - pour les cas suivants (dans le cadre d'un
laboratoire informatique) de fonctions qui :

- retourne la valeur arrondie du quotient
- retourne le plus petit entier supérieur ou égal au quotient
- retourne le plus petit entier inférieur ou égal au quotient

Merci infiniment d'avance !

Julien



Anonyme

Re: Division arrondie, supérieur et inférieur

par Anonyme » 30 Avr 2005, 16:15

Le 18/11/2003 18:50, Julien Mariller a écrit :

> Bonjour,
>
> J'ai besoin de savoir quelles sont les formules mathématiques - s'il y en
> a mais je suppose que oui - pour les cas suivants (dans le cadre d'un
> laboratoire informatique) de fonctions qui :
>
> - retourne la valeur arrondie du quotient
> - retourne le plus petit entier supérieur ou égal au quotient
> - retourne le plus petit entier inférieur ou égal au quotient

^^^^^
le plus grand, je suppose.

Tu disposes de quoi, comme fonctions ? Si tu n'as que les quatre
opérations, alors c'est difficile à faire, je pense.

Sinon, mettons que tu aies la partie entière par valeur inférieure,
appelons-la floor(x).

Alors la valeur arrondie est :
round(x) = floor(x+0,5)

Et la partie entière par valeur supérieure est :
ceil(x) = -floor(-x)

Anonyme

Re: Division arrondie, supérieur et inférieur

par Anonyme » 30 Avr 2005, 16:15

Am 18/11/03 19:05, sagte Olivier Miakinen (Olivier.Miakinen@evidian.com) :


> Tu disposes de quoi, comme fonctions ? Si tu n'as que les quatre
> opérations, alors c'est difficile à faire, je pense.
>
> Sinon, mettons que tu aies la partie entière par valeur inférieure,
> appelons-la floor(x).
>
> Alors la valeur arrondie est :
> round(x) = floor(x+0,5)


hein ? pourquoi ce 0,5 ?
moi j'aurais dit : valeur approché à n décimales de A :
par défaut = floor(A*10^n)/10^n
par excès = [floor(A*10^n)+1]/10^n


> Et la partie entière par valeur supérieure est :
> ceil(x) = -floor(-x)

= floor (x) + 1

par valeur inférieure floor(x)



albert

--

Bitte abnehmen die drei Sterne (***), um Albert Einstein (Junior) zu
antworten

Anonyme

Re: Division arrondie, sup érieur et inférieur

par Anonyme » 30 Avr 2005, 16:15

Le 18/11/2003 19:22, albert junior a écrit :
>[color=green]
>> Alors la valeur arrondie est :
>> round(x) = floor(x+0,5)

>
> hein ? pourquoi ce 0,5 ?[/color]

J'ai supposé que la question était « arrondie à l'entier le plus
proche », et répondu en conséquence.
[color=green]
>> Et la partie entière par valeur supérieure est :
>> ceil(x) = -floor(-x)

> = floor (x) + 1[/color]

Ça ne marche pas pour les entiers.
ceil(3) = 3
floor(3)+1 = 4

Anonyme

Re: Division arrondie, supérieur et inférieur

par Anonyme » 30 Avr 2005, 16:15

Am 18/11/03 19:37, sagte Olivier Miakinen (Olivier.Miakinen@evidian.com) :

[color=green]
>> hein ? pourquoi ce 0,5 ?

>
> J'ai supposé que la question était « arrondie à l'entier le plus
> proche », et répondu en conséquence.
>[/color]
ok, je viens de comprendre
j'avais mal réflechi, désolé



albert

--

Bitte abnehmen die drei Sterne (***), um Albert Einstein (Junior) zu
antworten

Anonyme

Re: Division arrondie, sup érieur et inférieur

par Anonyme » 30 Avr 2005, 16:15

Le problème c'est que "aucun calcul intermédiaire ne devra être effectué en
virgule flottante" !!!

"albert junior" a écrit dans le message
de news:BBE02F1D.1B225%alberteinstein588***@hotmail.com...
> Am 18/11/03 19:37, sagte Olivier Miakinen (Olivier.Miakinen@evidian.com)

:
>
>[color=green][color=darkred]
> >> hein ? pourquoi ce 0,5 ?

> >
> > J'ai supposé que la question était « arrondie à l'entier le plus
> > proche », et répondu en conséquence.
> >[/color]
> ok, je viens de comprendre
> j'avais mal réflechi, désolé
>
>
>
> albert
>
> --
>
> Bitte abnehmen die drei Sterne (***), um Albert Einstein (Junior) zu
> antworten
>[/color]

Anonyme

Re: Division arrondie, sup érieur et inférieur

par Anonyme » 30 Avr 2005, 16:15

Le 18/11/2003 21:13, Julien Mariller a écrit :

> Le problème c'est que "aucun calcul intermédiaire ne devra être effectué en
> virgule flottante" !!!


Donc ta division retourne un entier, je suppose.

Je suppose aussi que c'est l'entier le plus proche par valeur
inférieure, floor(p/q). Est-ce exact ?

Pour en être sûr, donne-nous le résultat des divisions suivantes :
10/3
11/3
(-10)/3
(-11)/3
10/(-3)
11/(-3)
(-10)/(-3)
(-11)/(-3)

Je crois que la réponse pour l'arrondi sera :
round(p/q) = floor((2p+q)/(2q)).

En effet,
p/q + 0,5 = p/q + q/2q = 2p/2q + q/2q = (2p+q)/2q

Anonyme

Re: Division arrondie, sup érieur et inférieur

par Anonyme » 30 Avr 2005, 16:16

Le 20/11/2003 15:59, Olivier Miakinen a écrit :

> Le 18/11/2003 21:13, Julien Mariller a écrit :
>[color=green]
>> Le problème c'est que "aucun calcul intermédiaire ne devra être effectué en
>> virgule flottante" !!!

>
> Donc ta division retourne un entier, je suppose.
>
> Je suppose aussi que c'est l'entier le plus proche par valeur
> inférieure, floor(p/q). Est-ce exact ?[/color]

Je viens de vérifier avec mon compilateur C (gcc), eh bien le résultat
est en fait l'entier le plus proche "dans la direction du 0",
c'est-à-dire que c'est par valeurs inférieures pour les nombres
positifs, mais par valeurs supérieures pour les négatifs.

> 10/3
> 11/3
> (-10)/(-3)
> (-11)/(-3)


Ces quatre-ci donnent 3

> (-10)/3
> (-11)/3
> 10/(-3)
> 11/(-3)


Ces quatre-là donnent -3 (et pas -4)

> Je crois que la réponse pour l'arrondi sera :
> round(p/q) = floor((2p+q)/(2q)).


Cette formule marche donc pour les nombres positifs. Si tu as besoin de
nombres négatifs aussi, précise-le.

On a même, si p >= 0 et q > 0,
- floor(p/q) ::= p/q
- round(p/q) ::= (2*p+q)/(2*q)
- ceil(p/q) ::= (p+q-1)/q

Cordialement,
Olivier Miakinen

 

Retourner vers ♲ Grenier mathématique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite