π
<-

Un ptit moteur 3D ?

Assembleur, Axe, C/C++, ICE...

Re: Un ptit moteur 3D ?

Unread postby Plokki » 15 Feb 2015, 17:43

A l'aide ! je suis bloqué par un overflow lors d'un calcul :( , je voudrais donc simplifier l'expression: pour cela il faut que j'identifie le nombre le plus petit dans l'absolu parmi 2 autres mais il doit être différent de 0.
Par exemple j'ai 12, -32, 0 , il faut choisir 12. J'aurais donc besoin d'un algorithme relativement optimisé pour le faire (autre qu'un gros paquet de condition comme je le conçoit). Merci d'avance ça m'aiderait beaucoup :)
User avatar
Plokki
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 40.6%
 
Posts: 124
Joined: 02 Sep 2014, 15:15
Location: Près de... ah bah non !
Gender: Male
Calculator(s):
MyCalcs profile
Class: T°S-spé math

Re: Un ptit moteur 3D ?

Unread postby matref » 15 Feb 2015, 17:48

Si tes 3 nombres sont A, B et C :

Code: Select all
abs(A)?,-1 // pas le moins unaire, le moins "normal"
→A
abs(B)?,-1
→B
abs(C)?,-1
→C
Le résultat est min(min(A,B),C)

Ce code marche parce que -1 en représentation non-signée est 65535, le plus grand chiffre représentable en 16 bits, et que min() sans le 'r' traite les nombres comme non signés.
User avatar
matref
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 25%
 
Posts: 506
Joined: 11 Dec 2011, 03:08
Location: France, Châteaurenard
Gender: Male
Calculator(s):
MyCalcs profile
Class: Prépa MPSI

Re: Un ptit moteur 3D ?

Unread postby TheMachine02 » 15 Feb 2015, 17:53

ou alors :
Code: Select all
min(min(abs(A),abs(B)),abs(C))??+1


qui je pense est peut-être un peu mieux ;) ; car il modifie pas les variables.
EDIT : mince j'avais pas vu le problème avec 0.... Le code va pas marcher.
vaut mieux prendre le code de matref :D
Last edited by TheMachine02 on 15 Feb 2015, 17:55, edited 1 time in total.
User avatar
TheMachine02Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 30%
 
Posts: 342
Images: 0
Joined: 16 Jan 2013, 18:27
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Médecine

Re: Un ptit moteur 3D ?

Unread postby matref » 15 Feb 2015, 17:54

Ben non ça marche pas ton truc. Fais-le avec les trois nombres qu'il a donné en exemple, ton code donne 1 alors que la bonne réponse est 12.
User avatar
matref
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 25%
 
Posts: 506
Joined: 11 Dec 2011, 03:08
Location: France, Châteaurenard
Gender: Male
Calculator(s):
MyCalcs profile
Class: Prépa MPSI

Re: Un ptit moteur 3D ?

Unread postby Plokki » 15 Feb 2015, 18:02

Merci pour les réponses rapides ! :D
Je ne connaissais pas la commande min( :o
les nombres en sortie ne sont plus signés mais c'est pas grave.
User avatar
Plokki
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 40.6%
 
Posts: 124
Joined: 02 Sep 2014, 15:15
Location: Près de... ah bah non !
Gender: Male
Calculator(s):
MyCalcs profile
Class: T°S-spé math

Re: Un ptit moteur 3D ?

Unread postby Hayleia » 15 Feb 2015, 18:06

Avec min(,)r ils sont signés (mais ça ne répond pas à ton problème, juste à un possible questionnement futur).

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: Un ptit moteur 3D ?

Unread postby grosged » 15 Feb 2015, 21:42

Plokki wrote:A l'aide ! je suis bloqué par un overflow lors d'un calcul :( , je voudrais donc simplifier l'expression: pour cela il faut que j'identifie le nombre le plus petit dans l'absolu parmi 2 autres mais il doit être différent de 0.
Par exemple j'ai 12, -32, 0 , il faut choisir 12. J'aurais donc besoin d'un algorithme relativement optimisé pour le faire (autre qu'un gros paquet de condition comme je le conçoit). Merci d'avance ça m'aiderait beaucoup :)

Plokki, si je comprends bien, tu veux savoir, (concernant une coordonnée x,y,z ) quelle est la variable la plus proche de 0
(puis mise dans la variable m, par exemple)
afin de changer d'échelle , en faisant un x/m,y/m,z/m ?.. C'est bien ça?


Matref, concernant
Code: Select all
abs(A)?,-1 // pas le moins unaire, le moins "normal"
→A
abs(B)?,-1
→B
abs(C)?,-1
→C
Le résultat est min(min(A,B),C)

au final ça serait pas plutôt 1+min(min(A,B),C) ?
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Un ptit moteur 3D ?

Unread postby Hayleia » 15 Feb 2015, 21:49

grosged wrote:Matref, concernant
Code: Select all
abs(A)?,-1 // pas le moins unaire, le moins "normal"
→A
abs(B)?,-1
→B
abs(C)?,-1
→C
Le résultat est min(min(A,B),C)

au final ça serait pas plutôt 1+min(min(A,B),C) ?

Déjà, non, ça serait plutôt min(min(A,B),C)+1 pour l'optimisation :P

Ensuite, de toute façons, non puisqu'il y a le "?," (qui pourrait d'ailleurs être un "??").
Ce que fait (abs(A)?,-1)→A c'est mettre dans A soit MaxPositiveInteger s'il est nul soit abs(A). Du coup, le min() renverra bien le minimum des valeurs absolues sans tenir compte de celles qui sont nulles.

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: Un ptit moteur 3D ?

Unread postby grosged » 15 Feb 2015, 21:58

ah, merci pour ces précisions , Hayleia!
J'avais cru bien déchiffrer ces lignes en Axe , je les avais compris ainsi : Abs(A)-1 dans A ...etc
(J'suis plutôt TI-Basic, en fait... aucune notion d'Axe!)
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Un ptit moteur 3D ?

Unread postby Hayleia » 15 Feb 2015, 22:04

En fait, tout réside dans ce "?,". ça fait un If Else en une ligne. Grosso modo, (abs(A)?,-1)→A équivaut à :
Code: Select all
If abs(A)

Else
    -1
End
→A

ce qui équivaudrait en bon vieux Basic à ça si je ne m'abuse :
Code: Select all
abs(A)
If Ans:Then

Else
    Ans-1
End
Ans→A

Et si je dis que le "?," pourrait être remplacé par "??", c'est parce que "??" c'est "If not".

Le tout sachant qu'en unsigned, -1 équivaut à MaxPositiveInteger.

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

PreviousNext

Return to Langages alternatifs

Who is online

Users browsing this forum: ClaudeBot [spider] and 7 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2163 utilisateurs:
>2139 invités
>18 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)