Bonjour
Tout est dans le titre.
Existe-t-il un calcul mathématiques pour connaître la partie entière d'un nombre décimal, c'est sans doute évident, mais sur le moment je ne vois pas
Merci.
Bonjour
Tout est dans le titre.
Existe-t-il un calcul mathématiques pour connaître la partie entière d'un nombre décimal, c'est sans doute évident, mais sur le moment je ne vois pas
Merci.
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
Par "calcul mathématique" tu entends une formule ?
du genre int(x) = x - (x mod 1)![]()
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Bonjour,
Moi, j'essayerais de reconstruire le nombre
N= ... + n3.E3 + n2.E2 + n1.E1 + n0.E0 + les décimales
E étant les puissances de 10.
Donc, la partie entière est la somme des nxEx.
Sinon, en C il y floor(), mais je suppose qui vous le saviez.
Oui, je cherche une formule.
Le langage que j'utilise (Prolog) connait floor mais la librairie (clpr) n'en veut pas donc j'essaie de trouver quelque chose avec + - * / mais pas mod par exemple car mod ne s'applique qu'aux entiers en Prolog.
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
En division entière, tu as "//" et "div" si je me souviens bien.
Sinon tu dois avoir la fonction "float_integer_part".
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
Salut,
Si j'ai bien compris tu veux une fonction de Real vers integer qui calcule la partie entière de X sans utiliser la librairie de Prolog ?
Oui, un calcul (je ne peux même pas en faire une fonction, je dois réécrire le calcul à chaque fois), en utilisant uniquement + - / * min, max car j'utilise la lib clpr qui ne veut que ces opérateurs mathématiques
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
Oui c'est exactement cela ! (à part que Prolog connait les integer (de toute taille d'ailleurs)).
Pour bien comprendre voici ce que je veux faire : je voudrais inverser cette formule : X is I + floor(0.5+sqrt(I)) qui permet d'obtenir la suite des nombres qui ne sont pas des carrés :
par exemple avec le code
on obtient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 seq_non_square(N) :- forall(between(1,N,I), ( X is I + floor(0.5+sqrt(I)), writeln(X))).
Je voudrais donc un calcul qui me permette de trouver I à partir d'un nombre X en faisant { X = I + floor(0.5+sqrt(I)) } avec la lib clpr !?- seq_non_square(21).
2
3
5
6
7
8
10
11
12
13
14
15
17
18
19
20
21
22
23
24
26
true.
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
Salut,
Je vois maintenant clair, je vais essayer de le faire.
C'est le genre de problèmes qui m'intéresse
Toutes fois si vous voulez bien me dire où peut on trouver :
*Prolog
*la bibliothèque clpqr
*un ou des cours intéressants sur Prolog
Nb : J'utilise Windows Xp.
J'ai toujours entendu parler de Prolog, je veux maintenant l'essayer.
Merci.
J'utilise SWI-Prolog. Les bibliothèques clpq et clpr sont incluses.
Tu as quelques cours ici !
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
Comme certain(s) participant(s) s'intéresse(nt) au problème, je retire le tagpeut-être la solution arrivera-t-elle ?
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
Salut,
J'ai une question :
X = I + floor(0.5+sqrt(I))
est ce que ce '0.5' est utilisé dans le but de donner un résultat juste avec floor?
Je renomme les variables :
A + floor(0.5 + sqrt(A)) = B
Pour résoudre cette équation il faut enlever le floor.
J'ai essayé d'avoir la formule inverse dans Maple, voici les résultats :
*avec '0.5' solve(A + 0.5 + sqrt(A) = B, A) :
B + 0.5 * sqrt(-1 + 4 * B)
B - 0.5 * sqrt(-1 + 4 * B)
*sans '0.5' solve(A + sqrt(A) = B, A) :
B + 0.5 + 0.5 * sqrt(1 + 4 * B)
B + 0.5 - 0.5 * sqrt(1 + 4 * B)
Maintenant il reste à savoir quelle formule choisir et où mettre le floor dans la bonne place.
finalement voici la formule :
I = X + Floor(1 - 0.5 * Sqrt(1 + 4 * X))
maintenant il reste à l'écrire en Prolog.
Partager