Enigmes

Forum dédié aux énigmes et à toutes formes de jeux de logique.

Déconnexion

Tu n'es pas identifié sur Prise2tete : s'identifier.

accueil Accueil forum Forum
[+]

Écrire une réponse

Attention : Aucun indice ou demande d'aide concernant les énigmes de Prise2Tete n'est accepté sur le forum ! Rends-toi sur le cercle des sages si tu as besoin d'aide !
Tout nouveau message ou sujet ne respectant pas cette règle sera supprimé, merci.
Rédige ton message
| | | | Upload | Aide
:) :| :( :D :o ;) :/ :P :lol: :mad: :rolleyes: :cool:
Options
Sécurité

Répondez (numériquement) à la petite énigme suivante : 

Si il y a 51 pommes et que vous en prenez 24, combien en avez-vous ?

Retour

Résumé de la discussion

Nicouj
17-11-2010 17:28:37

Vous devez programmer une fonction qui prend une liste de nombres entiers en paramètre et qui rend une liste contenant les même nombres mais dans laquelle on aurait enlevé les doublons éventuels.

f([1; 2; 4; 2; 4; 3; 1]) = [1; 2; 3; 4] 
ou bien  [2; 4; 1; 3], etc.
L'ordre nous importe peu.

Le problème est que votre langage est un peu restrictif :

- Le langage ne permet de ne définir qu'une seule fonction à la fois.
- Cette unique fonction ne peut avoir qu'un seul paramètre (donc forcément notre liste).
- Le langage ne permet pas de définir de variable auxiliaire
- le langage ne connait que deux type de données : les entiers et les listes d'entiers

Toutefois le langage offre quelques fonctionnalités :

- Il est récursif
- Il fournit une conditionnelle if/then/else classique
- Il permet de comparer des entiers ( <, >, = )
- Il dispose d'opérations de base sur les listes :
    * une fonction qui indique si une liste est vide,
    * une fonction qui rend la "tête" d'une liste (son premier élément),
    * une fonction qui rend la "queue" d'une liste (tous ses éléments sauf le premier)
    * une constante qui vaut une liste vide.
    * une fonction qui prend un entier et une liste en paramètre et qui rend une liste dont la tête est égale à l'entier passé en premier paramètre, et la queue est égale a la liste passée en second paramètre.

Est-il possible de définir notre fonction avec ce langage ?

Finalement j'aimerais que la fonction respecte aussi l'ordre d'apparition des nombres par rapport a la première liste
f([1; 2; 4; 2; 4; 3; 1]) = [1; 2; 4; 3] 

Est-ce toujours possible ?

(Utilisez votre langage favori mais en le contraignant aux restrictions de l'énoncé)

Pied de page des forums

P2T basé sur PunBB
Screenshots par Robothumb

© Copyright 2002–2005 Rickard Andersson

Prise2Tete Forum Statistiques Liste des membres Hall of Fame Contact
© Prise2tete - Site d'énigmes et de réflexion.
Un jeu où seules la réflexion, la logique et la déduction permettent de trouver la solution.

Flux RSS de Prise2Tete Forum Jeux & Prise2Tete Test & Prise2Tete Partenariat et Publicité sur Prise2Tete