Aller au contenu

Pourriez vous résoudre ce petit puzzle informatique


Extrazlove

Messages recommandés

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)
il y a 2 minutes, Extrazlove a dit :

Si j'ai déjà programmer en C des calculatrice et des jeux et pascal et VBA... ,il faut respecter le syntaxe pour la déclaration des fonctions, mais normalement vous n'êtes pas obliger, juste ceux qui ont programmés ses langages ont mis cette restrictions pour que leurs code soit plus lisible.

Ce n'est pas pour que le code soit lisible c'est pour que le code fonctionne, par exemple le mot clé new en javascript sert à créer une instance d'un objet, si je nomme ma variable new, var new = 4, c'est foutu, je ne peux plus instancier des objets.

 

Lien à poster
Partager sur d’autres sites

Annonces
Maintenant
  • Réponses 46
  • Créé
  • Dernière réponse
Membre, 42ans Posté(e)
Extrazlove Membre 3 802 messages
Mentor‚ 42ans‚
Posté(e)
il y a 8 minutes, riad** a dit :

Ce n'est pas pour que le code soit lisible c'est pour que le code fonctionne, par exemple le mot clé new en javascript sert à créer une instance d'un objet, si je nomme ma variable new, var new = 4, c'est foutu, je ne peux plus instancier des objets.

 

Pour que ca marche dans compilateur la fonction 4 doit être bien adressé  tel que 4(4)=2 ou 4(8)=6 ou 4(12)=10.

Chaque langage a ses propres adressage de la mémoire et son propre compilateur qui tient compte de ce adressage.

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)
il y a 9 minutes, Extrazlove a dit :

Pour que ca marche dans compilateur la fonction 4 doit être bien adressé  tel que 4(4)=2 ou 4(8)=6 ou 4(12)=10.

Chaque langage a ses propres adressage de la mémoire et son propre compilateur qui tient compte de ce adressage.

Tu racontes n'importe quoi comme d'habitudes :)

Lien à poster
Partager sur d’autres sites

Membre, 42ans Posté(e)
Extrazlove Membre 3 802 messages
Mentor‚ 42ans‚
Posté(e)
il y a 8 minutes, riad** a dit :

Tu racontes n'importe quoi comme d'habitudes :)

Non je connais le langage assembleur et microcontrôleur, avec les anciens langage je  peux nommer n'importe quoi ma fonction  même 4 et grâce a ses langage très bas niveau que tous les langages haute niveau sont programmés. 

C'est le premiers cours de C dit ca l'écriture de la fonction juste une restriction et un choix de langage C et le compilateur de C tiens compte de ses adresses.

 

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)
il y a 16 minutes, Extrazlove a dit :

Non je connais le langage assembleur et microcontrôleur, avec les anciens langage je  peux nommer n'importe quoi ma fonction  même 4 et grâce a ses langage très bas niveau que tous les langages haute niveau sont programmés. 

C'est le premiers cours de C dit ca l'écriture de la fonction juste une restriction et un choix de langage C et le compilateur de C tiens compte de ses adresses.

Plus le langage est bas niveau plus t'as besoin de symbole pour écrire une expression, et donc non, tu ne peux pas écrire ça en assembleur, d'ailleurs on écrit pas "+" mais ADD, en plus la référence à une variable en assembleur est lié à son adresse mémoire et non à sa valeur.

Lien à poster
Partager sur d’autres sites

Membre, 42ans Posté(e)
Extrazlove Membre 3 802 messages
Mentor‚ 42ans‚
Posté(e)
il y a 18 minutes, riad** a dit :

Plus le langage est bas niveau plus t'as besoin de symbole pour écrire une expression, et donc non, tu ne peux pas écrire ça en assembleur, d'ailleurs on écrit pas "+" mais ADD, en plus la référence à une variable en assembleur est lié à son adresse mémoire et non à sa valeur.

Oui mais plus tu programme avec un langage bas niveau plus tu peux créer les langages ,que tu veux même élever la restriction qui impose de ne pas écrire une fonction nommé 4().

Dans un langage a source libre tu peux enlever cette restriction pour écrire les fonctions et adapter le code de compilateur pour prendre compte.

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)
il y a 1 minute, Extrazlove a dit :

Oui mais plus tu programme avec un langage bas niveau plus tu peux créer les langages ,que tu veux même élever la restriction qui impose de ne pas écrire une fonction nommé 4().

Oui c'est possible, mais t'as posté une énigme et ta solution est un peu tiré par les cheveux, pare que si je dois créer un langage de programmation spécifique pour la résoudre, ça n'a plus aucun charme.

Lien à poster
Partager sur d’autres sites

Membre, 42ans Posté(e)
Extrazlove Membre 3 802 messages
Mentor‚ 42ans‚
Posté(e)
il y a 27 minutes, riad** a dit :

Oui c'est possible, mais t'as posté une énigme et ta solution est un peu tiré par les cheveux, pare que si je dois créer un langage de programmation spécifique pour la résoudre, ça n'a plus aucun charme.

Bah si tu es une autre solution propose le moi pour résoudre ce  puzzle informatique.

 

Non je pense que certain langages ont cette fonctionnalité pour enlever les restrictions pour écrire les fonctions de leurs langages.

Je sais pas si python peut le faire ,il y a même des langage ou tu ne peux pas écrire une fonction en minuscule, sans enlever les restrictions sur le compilateur .

 

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)
il y a 22 minutes, Extrazlove a dit :

Je sais pas si python peut faire ,il y a même des langage ou tu ne peux pas écrire une fonction en minuscule sans enlever les restrictions sur le compilateur .

Non le chiffre 4 en python est une instance de la classe int :

>>> type(4)
<class 'int'>

La classe int possède une méthode __add__() qui donne sa signification au symbole +,

>>> '__add__' in dir(4)
True

Quand tu écris 4 + 4 en python tu fais appel à la méthode __add__() c'est comme si tu écris 4.__add__(4), tu peux changer la signification du symbole '+' pour lui faire effectuer autre chose que l'addition, mais comme tout est object en python, dès que j'écris 4 , j'instancie automatiquement la class int, il n'y a aucun moyen de modifier ça.

Lien à poster
Partager sur d’autres sites

Membre, 42ans Posté(e)
Extrazlove Membre 3 802 messages
Mentor‚ 42ans‚
Posté(e)
il y a 8 minutes, riad** a dit :

Non le chiffre 4 en python est une instance de la classe int :


>>> type(4)
<class 'int'>

La classe int possède une méthode __add__() qui donne sa signification au symbole +,


>>> '__add__' in dir(4)
True

Quand tu écris 4 + 4 en python tu fais appel à la méthode __add__() c'est comme si tu écris 4.__add__(4), tu peux changer la signification du symbole '+' pour lui faire effectuer autre chose que l'addition, mais comme tout est object en python, dès que j'écris 4 , j'instancie automatiquement la class int, il n'y a aucun moyen de modifier ça.

Il ne faut pas le déclarer comme ca 4, mais comme ca 4() comme une fonction et enlève les restrictions pour écrire ta fonction dans compilateur.

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)
il y a 2 minutes, Extrazlove a dit :

il ne faut pas déclaré comme ca 4 mais comme ca 4() comme une fonction.

C'est pas possible parce que 4 en python c'est l'équivalent de int(), et donc si tu écris : 4() c'est comme si tu écris : int()(), et ça, ça n'a pas de sens, parce que 4 est un object int, ce n'est pas une fonction, tu ne peux pas l'appeler, et si tu regardes le message d'erreur ça dit : TypeError: 'int' object is not callable.

Lien à poster
Partager sur d’autres sites

Membre, 42ans Posté(e)
Extrazlove Membre 3 802 messages
Mentor‚ 42ans‚
Posté(e)
il y a 7 minutes, riad** a dit :

C'est pas possible parce que 4 en python c'est l'équivalent de int(), et donc si tu écris : 4() c'est comme si tu écris : int()(), et ça, ça n'a pas de sens, parce que 4 est un object int, ce n'est pas une fonction, tu ne peux pas l'appeler, et si tu regardes le message d'erreur ça dit : TypeError: 'int' object is not callable.

a bon ta jamais déclaré une fonction comme ca riad10() pourquoi alors le compilateur ne remplace pas le 10 en int()?:D

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)
il y a 6 minutes, Extrazlove a dit :

a bon ta jamais déclaré une fonction comme ca riad10() pourquoi alors le compilateur ne remplace pas le 10 en int()?:D

riad10 n'est pas 10 comme 4 n'est pas "4". riad10 est une variable non déclarée, 4 est une instance de la class int, "4" est une instance de la class str, il n'est pas possible de déclarer une fonction en utilisant l'instance d'une class, réfléchit.. :facepalm:

 

Lien à poster
Partager sur d’autres sites

Membre, 42ans Posté(e)
Extrazlove Membre 3 802 messages
Mentor‚ 42ans‚
Posté(e)
il y a 13 minutes, riad** a dit :

riad10 n'est pas 10 comme 4 n'est pas "4". riad10 est une variable non déclarée, 4 est une instance de la class int, "4" est une instance de la class str, il n'est pas possible de déclarer une fonction en utilisant l'instance d'une class, réfléchit.. :facepalm:

 

Juste un balabla de ce langage mais au fond ton variable de ta fonction riad10() est un code asci ,et ce code asci peut aussi s'écrire sans restrictions imposés est posé 4()

Quand tu déclare ton fonction il y a une limite imposé par ta table asci de taille, et dont En plus on élimine certaines probabilité comme 10() ou 4() ou des fonctions déjà déclarés d'être écrite pour plus de lisibilité dans le code c'est tous et pas modifié la valeur de la fonction déjà écrite.

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)
il y a 1 minute, Extrazlove a dit :

Juste un balabla de ce langage mais au fond ton variable de ta fonction riad10() est un code asci ,et ce code asci peut aussi s'écrire sans restrictions imposés est posé 4()

Tu me fatigues, je me casse. court.gif

Lien à poster
Partager sur d’autres sites

Membre, 42ans Posté(e)
Extrazlove Membre 3 802 messages
Mentor‚ 42ans‚
Posté(e)
il y a 4 minutes, riad** a dit :

Tu me fatigues, je me casse. court.gif

Bah t'a compris :D,tu court toujours en informatique tu ne comprend même pas l'adressage informatique; et tu fais la programmation orienté objet ou ce adressage est déjà fait et impose des règles spécifiques a ses objets.;)

Lien à poster
Partager sur d’autres sites

Membre, Explorateur de Nuages, 47ans Posté(e)
Pheldwyn Membre 25 236 messages
47ans‚ Explorateur de Nuages,
Posté(e)
Il y a 10 heures, Extrazlove a dit :

Bah t'a compris :D,tu court toujours en informatique tu ne comprend même pas l'adressage informatique; et tu fais la programmation orienté objet ou ce adressage est déjà fait et impose des règles spécifiques a ses objets.;)

Je ne vois pas pourquoi tu nous parles d'adressage. 

Là, dans ton "énigme", il s'agit de syntaxe et de grammaire de langage. 

Alors, oui, on pourrait créer un langage qui accepte que l'on nomme une fonction 4 (ou avec un quelconque autre nombre). Mais dans ce cas, il faut être sûr qu'il ne peut n'y avoir aucune ambiguité dans la syntaxe. 

Par exemple, ton 4(2) pourrait fonctionner, mais cela voudrait dire que ton langage n'autorise pas l'élision de la multiplication autorisée en mathématiques (bon, c'est souvent le cas) car il pourrait y avoir ambiguïté (il existe peut-être d'autres ambiguïtés auxquelles je ne pense pas). 

Surtout, en général, pour simplifier (car c'est le but d'un langage informatique : écrire de manière compréhensible et traduite dans des concepts plus simples à manipuler une foultitude d'opérations bas niveau), on autorisera les mêmes caractères grosso-modo dans les noms de variables, de fonctions et de classes... Et la, clairement, on ne pourrait nommer une variable 4, sans entraîner de suite des ambiguïtés. 

Bon, puis sinon pour ton énigme, si ta réponse passe par la création d'un langage, on a d'autres options... Autant qu'on veut, d'ailleurs, puisque qu'on peut décider de toute la grammaire et de la syntaxe 

On peut modifier l'opération + dans notre langage pour faire autre chose. Par exemple, que + ajoute la moitié du nombre suivant. Il suffit de redéfinir l'opérateur ainsi. 

Donc 4+4+4+4 revient à 4+2+2+2 qui valent bien 10.

 

Lien à poster
Partager sur d’autres sites

Membre, Explorateur de Nuages, 47ans Posté(e)
Pheldwyn Membre 25 236 messages
47ans‚ Explorateur de Nuages,
Posté(e)

Par ailleurs, dans ta solution, tu comptes les parenthèses comme faisant partie des 4 signes, mais pas comme opérateurs ? Alors qu'on ne devait utiliser que l'opérateur + ? 

Et si je voulais encore plus chipoter, sur le français cette fois ci, dans l'énoncé tu dis qu'il faut utiliser le chiffre 4 quatre fois, et uniquement 4 signes... Mais jamais tu ne précises qu'il est interdit d'utiliser d'autres chiffres en plus des quatres 4... Du coup, la solution hexadécimale ne contrevient pas à l'énoncé, tel qu'il est rédigé. 

Lien à poster
Partager sur d’autres sites

Membre, 42ans Posté(e)
Extrazlove Membre 3 802 messages
Mentor‚ 42ans‚
Posté(e)

Juste pour expliquer la base à riad, nous somme pas obligé de créer toute un language pour faire ça juste de le modifier pour tenir compte sans avoir un bug. 

Pour moi () n'est pas une opération, juste les deux crochets d'une fonction que je peux les remplacer par deux autres signes pour ne pas avoir un bug quand j'écris 4(). Et l'énoncé est clair j'ai dis exactement quatre 4 et 4 signe et seule l'opération + est autorisé. 

 

Et je pense si vous comprenez bien l'informatique basique et avancé le grand intérêt de cette formule,que je vais breveté :hehe:

 

Lien à poster
Partager sur d’autres sites

Membre, 57ans Posté(e)
azed1967 Membre 4 597 messages
Forumeur expérimenté‚ 57ans‚
Posté(e)
Il y a 17 heures, Extrazlove a dit :

Bonjour à toute et à tous,


En informatique, en utilisant le chiffre 4 exactement quatre fois, et 4 signes exactement et seule l'opération + est autorisée comment obtenir 10?


exemple erroné et pourquoi:


 (44 - 4) / 4 = 10 


ne fonctionne pas parce que 44 en informatique est un nombre et non le chiffre 4, et nous avons utilisé un - et / comme opération pas seulement +.


 4 + 4 + 4-racine(4) = 10 


est une mauvaise réponse même si nous avons 4 chiffres de 4 et 4 opérations, mais nous avons utilisé une opération - et sqrt pas seulement +.

hexadécimal (base 16):


 (+)4 + 4 + 4 + 4 = 10 

est une mauvaise réponse car nous somme obliger de transformer la formule pour le programmer soit 0(+)4 + 4 + 4 + 4 ici j'ai un 0 de plus ou 4 + 4 + 4 + 4 et ici juste 3 signe ,même si (+)4 + 4 + 4 + 4 a quatre 4 mais pas exactement 4 signe juste 3 ou il faut ajouté 0 pour le programmer.


Merci pour votre réponse pour résoudre ce puzzle.

Si vous ne trouvez pas j'ai trouvé  3 réponses pour résoudre ce puzzle informatique:

 

  Révéler le contenu masqué

 

1+2+3+4=10

les 4 éléments, l'eau, le feu,la terre et l'air.

 

Lien à poster
Partager sur d’autres sites

Annonces
Maintenant

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.


×