Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » Programme Analyse de nombre
Nirsab Hors ligne Membre Points: 117 Défis: 0 Message

Programme Analyse de nombre

Posté le 14/02/2022 11:29

Bien le bonjour

Je suis en train de faire un programme d'analyse de nombre.
J'aimerais qu'il soit le plus complet possible.

- Pair ou Impair ?
- Nombre carré ?
- Nombre triangulaire ?
- Nombre premier ?
- Nombre appartenant à la suite de Fibonacci
- Nombre appartenant à la suite de Fermat
- Si vous avez d'autres idées...


Pour le moment, j'ai réussi à faire une partie pour savoir si mon nombre est pair ou impair.
Je bloque un peu pour la suite...
Je cherche à faire la partie Fibonacci, mais il faut que je sache aussi comment on programme pour savoir si c'est un carré parfait..

Bref, j'ai envie de de faire un programme collaboratif, si c'est possible...

Voici ce que j'ai déjà fait, mais je ne pense pas que ce soit la manière la plus ergonomique:

"Nombre à analyser"?→N
"Pair ou Impair ?:"
2→A
N Rmdr A→B
If B=0
Then "PAIR"◢
Else
If B≠0
Then "IMPAIR"◢
"Nombre carré ?:"


Et ça bloque ....


Que faire,svp ?

Merci pour votre aide.

A+
N


Nirsab Hors ligne Membre Points: 117 Défis: 0 Message

Citer : Posté le 15/02/2022 19:15 | #


Je vais zieuter, Merci

Ajouté le 15/02/2022 à 20:23 :
ça ne doit pas être ça.... Je suis vraiment une quiche....

(5N²)+1→A
(5N²)-1→B
If sqrt(A)=N or sqrt(B)=N
Then "OUI"◢
Else
"NON"◢

La réussite commence avec la volonté d'essayer

Mes programmes
Clique APRES y avoir jeté un oeil

Lephenixnoir En ligne Administrateur Points: 22755 Défis: 149 Message

Citer : Posté le 15/02/2022 20:39 | #


Le test c'est si A ou B est un carré parfait... mais ça veut pas dire que ce sera le carré de N. D'ailleurs si tu regardes un peu la racine carrée de 5N² c'est √5·N² donc en gros 2.23N. Le test est essentiellement toujours faux !

Pour savoir si A est un carré parfait, la méthode qu'on a établie jusqu'à présent consiste à (1) calculer la partie entière de la racine carrée, puis (2) vérifier si le carré de ça c'est bien le nombre original. Donc :

5N²+1→A
5N²-1→B
If (Int √A)²=A Or (Int √B)²=B
Then "OUI"◢
Else "NON"◢
IfEnd

Et tu as encore oublié le IfEnd, ce qui reviendra te hanter !
Zezombye En ligne Rédacteur Points: 1756 Défis: 13 Message

Citer : Posté le 15/02/2022 21:35 | #


Ou juste Frac √A == 0 non ?
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Lephenixnoir En ligne Administrateur Points: 22755 Défis: 149 Message

Citer : Posté le 15/02/2022 21:38 | #


Comme on l'a dit (3 fois :x), c'est douteux pour les nombres qui dépassent la représentation exacte des entiers et tombent en représentation exponentielle. Tout dépend de quelle approximation tu veux, mais si tu as le témoin alors tu as prouvé que c'est un carré parfait, si tu as Frac √A = 0 tu as prouvé que soit c'est un carré parfait soit l'erreur de calcul de la racine tombe juste par chance.
Tituya Hors ligne Rédacteur Points: 1997 Défis: 16 Message

Citer : Posté le 15/02/2022 21:38 | #


Au passage le test c'est 5N²+4 ou 5N²-4 et non pas 1 comme tu as pu mettre
Bretagne > Reste du globe
(Et de toute façon, vous pouvez pas dire l'inverse grâce à Bzh)
Projet en cours : Adoranda

Mes programmes
Hésite pas à faire un test !


Nirsab Hors ligne Membre Points: 117 Défis: 0 Message

Citer : Posté le 16/02/2022 14:26 | #


Ca aurait été trop beau...

"Nbre de Fermat:"
'2^(2^N))+1→A
If (Int sqrtsqrtA)²=A
Then "Oui"◢
Else
"Non"◢
IfEnd //j'l'ai pas oublié !!!


Ajouté le 16/02/2022 à 14:27 :
Si vous avez d'autres suggestions, je suis preneur
La réussite commence avec la volonté d'essayer

Mes programmes
Clique APRES y avoir jeté un oeil

Lephenixnoir En ligne Administrateur Points: 22755 Défis: 149 Message

Citer : Posté le 16/02/2022 14:42 | #


Ce que tu calcules ne correspond pas à la réalité mathématique. Tu dois déterminer si N est un nombre de Fermat ; c'est-à-dire, existe-t-il k tel que N = 2^(2^k) + 1 ?

Ce que tu calcules à la place, c'est (en supposant que la double racine carrée est une typo) si 2^(2^N)+1 est un carré parfait, ou (en supposant que la double racine carrée est intentionnelle) une quantité qui n'a pas vraiment de sens.

Si tu reprends la même stratégie que pour le carré parfait, on peut voir un parallèle. Le carré parfait c'est existe-t-il k tel que N = k² ? La méthode choisie consiste à dire : si k existe, alors k = Int √N, par conséquent on peut calculer k et vérifier si N = k².

Ici, un traitement équivalent consisterait à dire : si k existe, alors k = Int (log₂ (log₂ (N-1))), par conséquent on peut calculer k et vérifier si N = 2^(2^k) + 1.

?→N
logab(2,N-1)→K
Int logab(2,K)→K
If 2^(2^K)+1=N
Then "Oui"◢
Else "Non"◢
IfEnd

Mais de toute façon ça ne marche que pour les 6 premiers nombres de Fermat puisqu'à partir du 7ème il y a tellement de chiffres que la représentation n'est plus exacte ; le programme répond "Oui" à la fois pour les nombres de Fermat à partir de F₇, mais aussi pour énormément de nombres adjacents qui n'en sont pas.

Il faut aussi traiter à l'avance le cas N≤2 qui produit une erreur Math à cause des logarithmes.
Nirsab Hors ligne Membre Points: 117 Défis: 0 Message

Citer : Posté le 16/02/2022 14:50 | #


Merciiii

En ajoutant une condition ?


Je crois que j'ai réussi
La réussite commence avec la volonté d'essayer

Mes programmes
Clique APRES y avoir jeté un oeil


LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 49 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd