j'ai un pb surement très simple mais je ne trouve pas :
soit N un nombre pair. Il peut s'écrire N = 2p*Q avec Q impair. ex: 36=22*9
Comment déterminer p (sans faire de divisions successives pas 2) ?
-----
02/05/2016, 12h01
#2
invite82078308
Date d'inscription
janvier 1970
Messages
1 080
Re : Nombre pair
Ce n'est pas compliqué les divisions successives par 2 !
En base 2, on voit en fait tout de suite le nombre p dans l'écriture du nombre.
En base 10, par exemple, il y a des critères de divisibilité par 2^n
09/05/2016, 15h27
#3
invite4c0f8c84
Date d'inscription
janvier 1970
Messages
3
Re : Nombre pair
Bonjour,
Juste pour savoir :
Es-ce que tu cherches comment le résoudre dans le cadre d'une méthode numérique (informatique), ou bien cherches tu une expression générale (analytique ou algébrique) pour caractériser p ?
- La méthode numérique "informatique" passe par l'écriture en bits (en notant que Q=2*K+1, on a N= (2^(p+1))*K+(2^p), ce qui te donne p par le nombre de zéro en bits de poids faibles dans ton nombre écrit en base 2)
- La méthode "analytique" : tu peux écrire p = (ln(N)-ln(Q))/ln(2), ou encore p=log2(N)-log2(P) (avec log2(x)=ln(x)/ln(2), car en général logZ(x)=ln(x)/ln(Z)), ce qui te donne par le calcul directement p (et en utilisant une machine, tu prends l'entier le plus proche de ton résultat pour palier aux erreurs d'arrondi)
Je n'ai pas cherché pour une méthode algébrique ou géométrique, mais je suis sur qu'en réfléchissant aux propriétés des angles des polygones convexes réguliers à N côtés, on doit pouvoir trouver des trucs...
09/05/2016, 17h54
#4
invite43f8d775
Date d'inscription
janvier 1970
Messages
64
Re : Nombre pair
En fait je cherche à calculer p (N étant donné) dans le tableur calc d'OpenOffice, en utilisant les fonctions standard.
Aujourd'hui
A voir en vidéo sur Futura
09/05/2016, 19h05
#5
invite29cafaf3
Date d'inscription
janvier 1970
Messages
2 782
Re : Nombre pair
Envoyé par zarake
dans le tableur calc d'OpenOffice, en utilisant les fonctions standard.
On croit rêver
10/05/2016, 06h51
#6
stefjm
Date d'inscription
avril 2008
Localisation
Zut! C'est pas homogène! Ben t'as qu'à mélanger...
Messages
17 789
Re : Nombre pair
Envoyé par pelkin
On croit rêver
Pourquoi donc?
Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».
10/05/2016, 07h50
#7
Resartus
Date d'inscription
octobre 2007
Messages
4 911
Re : Nombre pair
Bonjour,
La question aurait été plus à sa place en informatique...
Si le but est d'avoir une formule qui donne directement le résultat, on peut utiliser la fonction PGCD qui doit exister dans le tableur
(ou sinon, il faut charger un module qui la contient).
Le pgcd de N et de 2^a avec a assez grand va donner la plus grande puissance de 2 qui divise N.
Pour être sûr d'avoir un a "assez grand", on peut par exemple prendre a=ENT(LOG(N)/LOG(2))
(nom des fonctions PGCD, ENT, LOG à adapter à calc, que je ne connais pas)
Why, sometimes I've believed as many as six impossible things before breakfast
10/05/2016, 08h44
#8
ansset
Animateur Mathématiques
Date d'inscription
novembre 2009
Localisation
Fresnes
Âge
64
Messages
28 542
Re : Nombre pair
oui, je ne sais pas pour la fct PGCD sur tableur.
en revanche, je ne sais pas faire mieux que de tester en gros LOG(N/3) valeurs environ, ce qui est déjà mieux que LOG(N/2)
y'a quelque chose qui cloche là dedans, j'y retourne immédiatement !
13/05/2016, 17h17
#9
invite75a796c1
Date d'inscription
janvier 1970
Messages
738
Re : Nombre pair
Salut,
en effet, c'est de l'informatique à moins de présenter ça comme la construction d'un algo pour log base 2 pour les entiers
La fonction standard est int ffs(int) dans glibc , ffs comme First Bit Set. Faut voir quelle est sa fonction équivalente dans excel.
C'est facile de la réécrire dans des langages comme C et ses similaires, en faisant une boucle de test utilisant , par exemple, shift ( >> ) et And. La méthode implémentée en C utilise pour l'efficacité , entre autres , une table.