Aller au contenu

Petit challenge de manipulation de chaine


DenisHen
 Partager

Messages recommandés

Salut à tous.

 

Je propose un petit jeu, mais en Lisp et/ou en VLisp et sans mélanger les deux. Mais si vous êtes en mesure de proposer d'autres langages, libre à vous, faites-nous voir vos connaissances... ;)

 

Avec le moins de lignes possible, faire ceci :

 

1.La base est une chaine contenant un nombre à 16 chiffres (ex : "5637159071856346"),

2.Passer par l'étape d'inversion de ce contenu (ex : "6436581709517365"), en fait il faut lire la chaine depuis la fin,

3.Puis, permuter les paires 2 à 2 (ex : "46638571901537765"), on inverse les chiffres 2 par 2, 64 devient 46, 36 devient 63...

 

C'est parti... ;)

 

Denis...

Windows 10 Pro 64bits / AutoCAD 3D 2022

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 67
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

J'ai une solution, mais je laisse d'autres répondre avant de la poster.

J'en étais certain... ;)

 

PS: il y a une petite erreur dans l'énoncé : la base devrait être : "5637159071856346"

Oops, désolé, c'est modifié dans le post original. Merci.

Windows 10 Pro 64bits / AutoCAD 3D 2022

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).

Lien vers le commentaire
Partager sur d’autres sites

Salut Curlygoth.

 

Non, désolé, pas de VBA, et pour l'itération ou la boucle, c'est toi qui vois, il faut un minimum de ligne de code...

 

C'est le challenge. ;)

Windows 10 Pro 64bits / AutoCAD 3D 2022

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).

Lien vers le commentaire
Partager sur d’autres sites

Désolé...

 

Mais tu peux lancer ce challenge en VBA...

Windows 10 Pro 64bits / AutoCAD 3D 2022

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).

Lien vers le commentaire
Partager sur d’autres sites

On pourrait accepter des réponses dans d'autres langages.

Il est peu probable qu'on arrive à faire aussi concis qu'en LISP, excepté avec certains langages fonctionnels comme F#:

let jeu str =
   let rec f a = function
       | x :: y :: t -> f (x :: y :: a) t
       | _ -> a
   new string(str |> Seq.toList |> f [] |> List.toArray)

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

(gile), si c'est une idée pour augmenter le jeu, je suis preneur...

 

Désires-tu que je change les langages du challenge ?

 

je n'y vois rien à redire pour ma part... ;)

Windows 10 Pro 64bits / AutoCAD 3D 2022

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).

Lien vers le commentaire
Partager sur d’autres sites

Non, bien sûr (gile), je ne m'attends pas à un surprenant engouement suite à un coup de baguette magique de la part d'autrui, bien que ce forum regorge de personnes investies et de bonne fois, l'entente de ce forum, et tu en conviendras, est très sympathique, empathique, sans attente de retour (altruisme, es-tu là ?), et presque amical (je m'en suis aperçu lors du malheureux décès anonyme d'un des nôtres, j'ai été très triste, et je n'étais pas le seul...).

 

Mais je n'ai plus de "lien" avec le AutoCAD et le Lisp en ce moment et depuis quelques années (je travaille sur un autre logiciel, MIAO de AllSystems), mais je viens toujours faire un tour sur CadXP, nostalgie, quand tu nous tiens...

 

Je vais donc agrandir le cercle du développement de "mon" challenge à toutes formes de langage...

 

Tu as, encore une fois, raison... ;)

 

Je vais de ce pas changer mon premier post...

 

Merci à toi...

 

Denis...

Windows 10 Pro 64bits / AutoCAD 3D 2022

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Une solution en Autolisp

 

(defun chal (str / ret cpt)
(setq str (vl-string->list str) cpt 0)
(repeat (/ (length str) 2)
   (setq ret (cons (vl-list->string (list (nth cpt str)(nth (1+ cpt)str))) ret ) cpt (+ 2 cpt))
)
(apply 'strcat ret)
)

...plus je sais où je suis, moins je sais où je vais....

Extrait d'une double interview simultanée d'une particule élémentaire.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Une solution en Javascript

 

function chal(str) {
 var lstr = str.split('').reverse();  
 var lret = [];
 var cpt = 0;
for (var ii = 0; ii < lstr.length / 2; ii++){
	lret.push(lstr[cpt + 1],lstr[cpt]);
               var cpt = cpt + 2;
   }
console.log("".concat(...lret));
}
chal('5637159071856346');
> "4663857190153756"

...plus je sais où je suis, moins je sais où je vais....

Extrait d'une double interview simultanée d'une particule élémentaire.

Lien vers le commentaire
Partager sur d’autres sites

Voilà ! ! ! Merci Maître (gile), du java maintenant ! ! !

 

Non, je déconne, c'est vraiment curieux le java, et ça m'intéresse...

 

Mais on ne peut pas dire qu'il économise les lignes de codes...

 

Bien que, on est d'accord, le Lisp n'est, en fait, qu'une seule ligne de code...

 

Mais merci Fraid de participer... Et tu as bien relevé le challenge... Bravo...

Windows 10 Pro 64bits / AutoCAD 3D 2022

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).

Lien vers le commentaire
Partager sur d’autres sites

Ah ben ouais, c'est "script" la différence ? ? ?

 

Non, je déconne, je ne connais pas la différence entre Java et JavaScript... Est-ce la même qu'entre VB et VBA ? Par exemple ? Est-ce la même qu'entre VB6 et .NET ? Est-ce la même qu'entre Lisp et V-Lisp ? Est-ce la même qu'entre un gratin et une tourte ?

 

Ok, je sors, je sais, je suis aller trop loin... Désolé... Mais j'aime humoristiquer mes propos pour "détendre", car je suis sur que je vais finir par connaître la différence entre Java et JavaScript... Car je suis sûr que tu va le faire...

 

Mais, est-ce que le javaScript est une évolution du Java, est-ce une révolution ? Est-ce le même langage de base ? Les fonctions, les paramètres, les termes, l'algorithme est-il le même ? ? ?

 

Dès qu'on me présente un langage, je suis toujours super curieux... Mais je sais pertinemment qu'il y en a eu un autre avant...

 

J'ai toujours vu le Java comme un super truc mais le JavaScript, est-ce le super truc du super-truc ? Est-ce une évolution ? Une décadence ? une suite précurcive ?

 

Allez, défoule-toi Fraid... j'ai soiffe de connaissance...

Windows 10 Pro 64bits / AutoCAD 3D 2022

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).

Lien vers le commentaire
Partager sur d’autres sites

défoule-toi Fraid

 

Oula, c'est que j'ai du travail....

et c'est souvent pour cela que mes messages sont court.

 

Il va falloir que tu te documente, sur Wiki par exemple.

Dès que j'ai le temps je fait un exemple en Java.

...plus je sais où je suis, moins je sais où je vais....

Extrait d'une double interview simultanée d'une particule élémentaire.

Lien vers le commentaire
Partager sur d’autres sites

Dès que j'ai le temps je fait un exemple en Java.

J'en serais ravi, et je ne serais pas le seul... Car aller voir la différence entre le Java et le JavaScript sur le NET, je vais y passer des heures, et je ne suis pas sûr d'être plus renseigné à la fin, pas tel qu'un véritable utilisateur et développeur ne pourrais le faire... Via une explication concise soutenu par de petits exemples ne pourrait le faire...

 

Tu as la connaissance des deux, donc, il n'y a qu'une personne comme toi (et tant d'autre, on est bien d'accord), pour, en quelques lignes, m'expliquer la différence.

 

Car j'ai déjà essayé, mais rien de probant...

Windows 10 Pro 64bits / AutoCAD 3D 2022

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).

Lien vers le commentaire
Partager sur d’autres sites

Pour faire court, JavaScript est un langage de script (langage interprété à typage dynamique) comme Python, VBScript ou encore LISP, Java est un langage compilé à typage statique comme C, C++, C#, VB.NET ou encore F#.

F#, qui privilégie la programmation fonctionnelle, utilise un typage très rigoureux (pas de conversions implicites) qui permet une puissante inférence de type (le type des données est directement déduit du code avant compilation). Ceci permet un syntaxe très concise qui rappelle les langages de script.

Un autre exemple F# encore plus concis :

let foo str =
   let rec f s r =
       if s = "" then  r
       else f  s.[2 ..] (s.[.. 1] + r)
   f str ""

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Hello Gilles

 

1) J admire ! Et ce code me parait "mysterieux" ...

 

2) Mes antecedants de "vieille" programmation : Assembleur, Fortran, Cobol, GAP/RPG, Pascal, Basic, un soupcon de C,

me m ont jamais permis de vraiment "bien" comprendre le Lisp. Mais j aurais du insister !

 

3) A l epoque (1980-1995) j admirais un autre langage "perdu aujourd'hui" : APL

https://fr.wikipedia.org/wiki/APL_(langage)

 

La Sante, Bye, lecrabe "fatigue"

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

ça devrait ressembler à du Java

 

Je confirme

 

public class Challenge {
   public static void main(String[] args){
   System.out.print(chal("5637159071856346"));
}
   public static String chal( String txt){
    String ret = "";
    while (1 < txt.length())
   {
       ret = txt.substring(0, 2) + ret;
       txt = txt.substring(2);
   } 
       return ret;
   }
}
run:
4663857190153756BUILD SUCCESSFUL (total time: 0 seconds)

...plus je sais où je suis, moins je sais où je vais....

Extrait d'une double interview simultanée d'une particule élémentaire.

Lien vers le commentaire
Partager sur d’autres sites

Salut (gile), je n'ai pas tout compris, mais c'était très clair... ;)

 

Ôh Décapode, tu as fais du Cobol ? ? ? Alors là bravo, j'en ai fais une minute, j'ai eu mal au crane pendant deux semaines... Mais j'ai adoré...

Windows 10 Pro 64bits / AutoCAD 3D 2022

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
 Partager




×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité