{"id":2059,"date":"2025-10-29T18:01:50","date_gmt":"2025-10-29T17:01:50","guid":{"rendered":"https:\/\/blog.univ-angers.fr\/mathsinfo\/?p=2059"},"modified":"2025-10-29T18:01:50","modified_gmt":"2025-10-29T17:01:50","slug":"challenges-en-langage-uiua-dapres-les-mpo-du-forum-silicium","status":"publish","type":"post","link":"https:\/\/blog.univ-angers.fr\/mathsinfo\/2025\/10\/29\/challenges-en-langage-uiua-dapres-les-mpo-du-forum-silicium\/","title":{"rendered":"Challenges en langage Uiua (D&rsquo;apr\u00e8s les MPO du forum Silicium)"},"content":{"rendered":"\n<p>Initiation au langage Uiua<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Initiation \u00e0 Uiua : Les bases\" width=\"584\" height=\"329\" src=\"https:\/\/www.youtube.com\/embed\/aZhoa75Eqeo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83e\udde9 Challenge 4 : P\u00e9rim\u00e8tre et surface d&rsquo;un rectangle<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf \u00c9nonc\u00e9<\/h2>\n\n\n\n<p>Soit un rectangle de c\u00f4t\u00e9&nbsp;a&nbsp;et&nbsp;b.<\/p>\n\n\n\n<p>Avec&nbsp;a&nbsp;et&nbsp;b&nbsp;respectivement sur la pile, faire un programme qui sort le&nbsp;<strong>P\u00e9rim\u00e8tre du rectangle<\/strong>&nbsp;et la&nbsp;<strong>Surface du rectangle<\/strong>.<\/p>\n\n\n\n<p>Les formules utilis\u00e9es sont :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>P\u00e9rim\u00e8tre :\u00a0P = 2(a+b)<\/li>\n\n\n\n<li>Surface :\u00a0S = a <code>\u00d7<\/code> b<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd11 Mots-cl\u00e9s Uiua<\/h2>\n\n\n\n<p>\u2283 \u2013 Appeler deux fonctions sur une m\u00eame valeur<br>\u00d7\u2082 \u2013 Multiplier par 2<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde0 Solution Uiua<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>CHA\u2084 \u2190 \u00d7\u2082\u2283+\u00d7\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd0d Explications<\/h2>\n\n\n\n<p><strong>La fonction&nbsp;<code>CHA\u2084<\/code>&nbsp;est con\u00e7ue pour calculer \u00e0 la fois la surface et le p\u00e9rim\u00e8tre d&rsquo;un rectangle \u00e0 partir des longueurs de ses c\u00f4t\u00e9s, en laissant les deux r\u00e9sultats sur la pile.<\/strong><\/p>\n\n\n\n<p>L&rsquo;op\u00e9rateur\u00a0<code>\u2283<\/code>\u00a0permet d&rsquo;appliquer les deux calculs et de conserver la Surface et le P\u00e9rim\u00e8tre sur la pile dans l&rsquo;ordre requis par l&rsquo;\u00e9nonc\u00e9.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Calcul de la Surface :<\/strong>\u00a0L&rsquo;op\u00e9rateur\u00a0<code>\u00d7<\/code>\u00a0(multiplication) calcule la surface (<strong>S<\/strong>=<strong>a<\/strong>\u00d7<strong>b<\/strong>).<\/li>\n\n\n\n<li><strong>Calcul du P\u00e9rim\u00e8tre :<\/strong>\u00a0L&rsquo;op\u00e9rateur\u00a0<code>+<\/code>\u00a0(addition) calcule d&rsquo;abord la somme des c\u00f4t\u00e9s (<strong>a<\/strong>+<strong>b<\/strong>), puis le r\u00e9sultat est multipli\u00e9 par 2 (<code>\u00d7\u2082<\/code>).<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddfe Exemples<\/h2>\n\n\n\n<p><strong>Pour les entr\u00e9es&nbsp;3&nbsp;et&nbsp;4, la fonction donne les r\u00e9sultats suivants :<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CHA\u2084 3 4\n\nR\u00e9sultats :\n12 # Surface\n14 # P\u00e9rim\u00e8tre\n<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83e\udde9 Challenge 8 : Cha\u00eene<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf \u00c9nonc\u00e9<\/h2>\n\n\n\n<p>Faire un programme qui&nbsp;<strong>inverse l&rsquo;ordre des caract\u00e8res d&rsquo;une chaine<\/strong>&nbsp;et qui, en plus, transforme l&rsquo;ensemble en&nbsp;<strong>minuscules<\/strong>.<\/p>\n\n\n\n<p><strong>Exemple :<\/strong>&nbsp;\u00ab\u00a0sILiCIuM\u00a0\u00bb donne \u00ab\u00a0muicilis\u00a0\u00bb.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd11 Mots-cl\u00e9s Uiua<\/h2>\n\n\n\n<p>\u21cc \u2013 Inverser la chaine, un vecteur ou les lignes d&rsquo;un tableau<br>\u2335 \u2013 Mettre en majuscules<br>\u00af \u2013 Inverser la casse<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde0 Solution Uiua<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>CHA\u2088 \u2190 \u00af\u2335\u21cc\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd0d Explications<\/h2>\n\n\n\n<p>Le programme inverse d&rsquo;abord la cha\u00eene (\u21cc), la met ensuite enti\u00e8rement en majuscules (\u2335), puis utilise l&rsquo;op\u00e9rateur d&rsquo;inversion de casse (\u00af). L&rsquo;inversion de casse (\u00af) permet de transformer toutes les majuscules r\u00e9sultantes en minuscules.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddfe Exemples<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>CHA\u2088 \"sILiCIuM\"\n\u2192 \"muicilis\"\n<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83e\udde9 Challenge N\u00b09 : Somme des chiffres d&rsquo;un nombre<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf \u00c9nonc\u00e9<\/h2>\n\n\n\n<p>Soit un&nbsp;<strong>nombre entier positif<\/strong>&nbsp;sur la pile. Le programme doit calculer la&nbsp;<strong>somme de ses chiffres<\/strong>.<\/p>\n\n\n\n<p><strong>Exemple :<\/strong>&nbsp;352791 doit retourner 27.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd11 Mots-cl\u00e9s Uiua<\/h2>\n\n\n\n<p>\u22a5\u2081\u2080 \u2013 D\u00e9composition du nombre en chiffres<br>\/+ \u2013 Addition\/Somme des \u00e9l\u00e9ments d&rsquo;un vecteur<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde0 Solution Uiua<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>CHA\u2089 \u2190 \/+\u22a5\u2081\u2080\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd0d Explications<\/h2>\n\n\n\n<p><strong>La fonction&nbsp;<code>CHA\u2089<\/code>&nbsp;est con\u00e7ue pour r\u00e9aliser la somme des chiffres d&rsquo;un nombre.<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>D\u00e9composition :<\/strong>\u00a0L&rsquo;op\u00e9rateur\u00a0<strong>\u22a5\u2081\u2080<\/strong>\u00a0prend le nombre entier positif en entr\u00e9e et r\u00e9alise sa\u00a0<strong>d\u00e9composition en chiffres<\/strong>\u00a0(base 10)<strong>.<\/strong><\/li>\n\n\n\n<li><strong>Sommation :<\/strong>\u00a0L&rsquo;op\u00e9rateur\u00a0<strong>\/+<\/strong>\u00a0est ensuite appliqu\u00e9 pour effectuer la somme de tous les chiffres obtenus dans la liste (r\u00e9duction par l&rsquo;addition)<strong>.<\/strong><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddfe Exemple<\/h2>\n\n\n\n<p><strong>Pour le nombre 352791, la fonction donne le r\u00e9sultat suivant :<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CHA\u2089 352791\n\nR\u00e9sultat : 27\n<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83e\udde9 Challenge 13 : Aire d&rsquo;un triangle<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf \u00c9nonc\u00e9<\/h2>\n\n\n\n<p><strong>\u00c9crire un programme<\/strong>&nbsp;qui permet de calculer la&nbsp;<strong>surface d&rsquo;un triangle quelconque<\/strong>.<\/p>\n\n\n\n<p>Le calcul de l&rsquo;aire&nbsp;S&nbsp;d&rsquo;un triangle quelconque, en ne connaissant que les longueurs&nbsp;a,&nbsp;b&nbsp;et&nbsp;c&nbsp;de ses trois c\u00f4t\u00e9s, est permis par la&nbsp;<strong>formule de H\u00e9ron<\/strong>.<\/p>\n\n\n\n<p>La formule est vue comme\u00a0\u221a(s(s-a)(s-b)(s-c)), o\u00f9\u00a0s\u00a0est la demi-somme des c\u00f4t\u00e9s.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd11 Mots-cl\u00e9s Uiua<\/h2>\n\n\n\n<p>\u00f7\u2082 \u2013 Diviser par 2<br>\u2282 \u2013 Joindre 2 \u00e9l\u00e9ments (scalaires, vecteurs&#8230;)<br>\/\u00d7 \u2013 Produit des \u00e9l\u00e9ments d&rsquo;un vecteur<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde0 Solution Uiua<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>CHA\u2081\u2083 \u2190 \u221a\/\u00d7-\u22820\u27dc(\u00f7\u2082\/+)\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd0d Explications<\/h2>\n\n\n\n<p>La solution impl\u00e9mente la formule de H\u00e9ron, qui est exprim\u00e9e dans les sources comme&nbsp;\\sqrt{(s-a)(s-b)(s-c)(s-0)}<\/p>\n\n\n\n<p>La fonction se d\u00e9compose comme suit :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Calcul du demi-p\u00e9rim\u00e8tre (s): La partie (\u00f7\u2082\/+) calcule la demi-somme (s) des longueurs des c\u00f4t\u00e9s a, b, et c.<\/li>\n\n\n\n<li>Pr\u00e9paration du vecteur pour la soustraction: L&rsquo;op\u00e9ration \u22820\u27dc maintient le vecteur initial des c\u00f4t\u00e9s (a,b,c) (\u27dc) et lui ajoute le nombre 0 (\u22820).<\/li>\n\n\n\n<li>Soustraction et cr\u00e9ation des termes: L&rsquo;op\u00e9rateur &#8211; (soustraction) est ensuite appliqu\u00e9 pour cr\u00e9er les termes (a\u2212s),(b\u2212s),(c\u2212s) et (0\u2212s).<\/li>\n\n\n\n<li>Calcul final de l&rsquo;aire: Enfin, l&rsquo;op\u00e9ration \u221a\/\u00d7 r\u00e9alise le produit des quatre termes et applique la racine carr\u00e9e au r\u00e9sultat.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddfe Exemples<\/h2>\n\n\n\n<p>Pour les entr\u00e9es 4_5_6 et 3_4_5, la fonction donne les r\u00e9sultats suivants :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u2229CHA\u2081\u2083 4_5_6 3_4_5\n\nR\u00e9sultats :\n\u2022 6 (pour un triangle de c\u00f4t\u00e9s 3, 4, 5)\n\u2022 9.921567416492215 (pour un triangle de c\u00f4t\u00e9s 4, 5, 6)\n<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83e\udde9 Challenge 57 : Inversion\u2013Addition<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf \u00c9nonc\u00e9<\/h2>\n\n\n\n<p>\u00c0 partir d\u2019un entier, inverse ses chiffres, additionne les deux nombres, puis recommence jusqu\u2019\u00e0 obtenir un&nbsp;<strong>palindrome<\/strong>&nbsp;(un nombre identique \u00e0 l\u2019envers).<br>Affiche le&nbsp;<strong>palindrome obtenu<\/strong>.<\/p>\n\n\n\n<p>\u27a1\ufe0f Bonus : trouver le premier nombre (le plus petit) qui&nbsp;<strong>ne g\u00e9n\u00e8re jamais de palindrome<\/strong>&nbsp;\u2014 c&rsquo;est un&nbsp;<strong>nombre de Lychrel<\/strong>.<\/p>\n\n\n\n<p><strong>Exemple<\/strong><br>78 \u2192 78 + 87 = 165<br>165 + 561 = 726<br>726 + 627 = 1353<br>1353 + 3531 = 4884 \u2705 (palindrome)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd11 Mots-cl\u00e9s Uiua<\/h2>\n\n\n\n<p>\u22a5\u2081\u2080 \u2013 convertir un nombres en chiffres d\u00e9cimaux<br>\u235c&nbsp;<strong>f g<\/strong>&nbsp;\u2013 effectuer l&rsquo;op\u00e9ration&nbsp;<strong>f<\/strong>&nbsp;sur un tableau, puis&nbsp;<strong>g<\/strong>&nbsp;puis inverse la transformation&nbsp;<strong>f<\/strong><br>\u22b8 \u2013 garder la valeur initiale sur la pile<br>\u2362(action|test) \u2013 boucle : r\u00e9p\u00e9ter une action tant qu\u2019un test est vrai<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde0 Solution Uiua<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>Rev   \u2190 \u22b8\u235c\u22a5\u2081\u2080\u21cc\nCHA\u2085\u2087 \u2190 \u2362(+Rev|\u2260Rev)\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd0d Explications<\/h2>\n\n\n\n<p>\u22a5\u2081\u2080 : convertit un nombre en liste de chiffres<br>\u21cc : inverse la liste<br>\u235c \u22a5\u2081\u2080 \u21cc : transformation \u22a5\u2081\u2080 puis \u21cc et enfin transformation inverse de \u22a5\u2081\u2080 (Chiffres en nombre)<br>\u22b8 : conserve le nombre d\u2019origine<br>\u2362(+Rev|\u2260Rev) : additionne avec l\u2019inverse tant qu\u2019on n\u2019a pas de palindrome<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddfe Exemples<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\u2261CHA\u2085\u2087 165_59_89\n\u2192 &#091;4884 1111 8813200023188]\n\nCHA\u2085\u2087 196\n\u2192 Error: Cannot take base of \u221e\n<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83e\udde9 Challenge N\u00b074 : Cubes en folie<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf \u00c9nonc\u00e9<\/h2>\n\n\n\n<p>Trouver tous les&nbsp;<strong>nombres taxi<\/strong>&nbsp;(taxicab number) inf\u00e9rieurs \u00e0 40000 [1].<\/p>\n\n\n\n<p>L&rsquo;origine de ce d\u00e9fi est c\u00e9l\u00e8bre : En 1919, G.H. Hardy a mentionn\u00e9 \u00e0 Srinivasa Ramanujan que le num\u00e9ro de son taxi,&nbsp;<strong>1729<\/strong>, lui semblait banal. Ramanujan r\u00e9pondit qu&rsquo;il s&rsquo;agissait au contraire du&nbsp;<strong>plus petit nombre exprimable comme somme de deux cubes de deux fa\u00e7ons<\/strong>&nbsp;.<\/p>\n\n\n\n<p><strong>Exemple c\u00e9l\u00e8bre<\/strong><\/p>\n\n\n\n<p>1729 = 1\u00b3 + 12\u00b3 = 9\u00b3 + 10\u00b3<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd11 Mots-cl\u00e9s Uiua<\/h2>\n\n\n\n<p>\u207f3 ou \u207f\u2083 \u2013 Calculer la puissance 3 (au cube)<br>\u21e1\u2081 \u2013 G\u00e9n\u00e9rer un intervalle d&rsquo;entiers, de 1 \u00e0 N<br>\u02d9\u229e+ \u2013 Op\u00e9rateur qui g\u00e8re la duplication et la construction de la table de&nbsp;<strong>toutes les additions possibles des diff\u00e9rents couples<\/strong>.<br>\u229b\u266d \u2013 Op\u00e9rateur qui&nbsp;<strong>aplatit<\/strong>&nbsp;le tableau et&nbsp;<strong>assigne un index unique<\/strong>&nbsp;\u00e0 chaque valeur<br>\u22b8 \u2013 Garder la valeur initiale sur la pile<br>\u2295(&gt;2\u29fb) \u2013 Grouper les \u00e9l\u00e9ments par leurs index, puis pour chaque groupe,&nbsp;<strong>compter<\/strong>&nbsp;(\u29fb) le nombre d&rsquo;occurrences et tester s&rsquo;il y en a&nbsp;<strong>plus que 2<\/strong>&nbsp;(&gt;2)<br>\u25bd \u2013 Garder (filtrer) les valeurs concern\u00e9es<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde0 Solution Uiua<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>CHA\u2087\u2084 \u2190 \u25bd\u2295(&gt;2\u29fb)\u22b8\u22b8\u229b\u266d\u02d9\u229e+\u207f\u2083\u21e1\u2081\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd0d Explications<\/h2>\n\n\n\n<p>La fonction&nbsp;<code>CHA\u2087\u2084<\/code>&nbsp;est con\u00e7ue pour identifier les nombres qui apparaissent au moins deux fois comme somme de deux cubes, en limitant la recherche par le param\u00e8tre&nbsp;N&nbsp;(dans l&rsquo;exemple,&nbsp;N=35&nbsp;permet de trouver les nombres taxi sous 40000).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>\u207f\u2083\u21e1\u2081 N<\/code>\u00a0: Cette partie calcule les puissances 3 des entiers allant de 1 jusqu&rsquo;\u00e0\u00a0N.<\/li>\n\n\n\n<li><code>\u02d9\u229e+<\/code>\u00a0: Elle g\u00e9n\u00e8re un tableau de toutes les sommes possibles en additionnant les couples de cubes obtenus.<\/li>\n\n\n\n<li><code>\u229b\u266d<\/code>\u00a0: L&rsquo;op\u00e9rateur\u00a0<code>.\u266d<\/code>\u00a0aplatit ce tableau de sommes, et l&rsquo;op\u00e9rateur\u00a0<code>\u229b<\/code>\u00a0assigne ensuite un index unique \u00e0 chaque valeur.<\/li>\n\n\n\n<li><code>\u2295(&gt;2\u29fb)<\/code>\u00a0: C&rsquo;est le c\u0153ur de la d\u00e9tection : les nombres sont group\u00e9s (\u2295) selon leur index.<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83e\udde9 Challenge N\u00b0116 : Le d\u00e9fi du Rami en chiffres<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf \u00c9nonc\u00e9<\/h2>\n\n\n\n<p>Dans ce mini-jeu nomm\u00e9&nbsp;<strong>RamiSum<\/strong>, les seules combinaisons valables sont celles avec&nbsp;<strong>au moins 3 nombres identiques<\/strong>&nbsp;.<\/p>\n\n\n\n<p><strong>Mission :<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>En entr\u00e9e :<\/strong>\u00a0Un nombre compos\u00e9 de chiffres entre 1 et 9, de taille arbitraire.<\/li>\n\n\n\n<li><strong>En sortie :<\/strong>\u00a0Le\u00a0<strong>score maximum<\/strong>\u00a0que l&rsquo;on peut obtenir, ou\u00a0<strong>0<\/strong>\u00a0si aucun coup n&rsquo;est possible.<\/li>\n<\/ul>\n\n\n\n<p><strong>Exemples de combinaisons valables :<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pour le tirage 84884284, les combinaisons valables sont 888, 8888 et 444.<\/li>\n\n\n\n<li>Pour le tirage 123456, on ne peut pas jouer.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd11 Mots-cl\u00e9s Uiua<\/h2>\n\n\n\n<p>\u229b \u2013 Op\u00e9rateur qui assigne des&nbsp;<strong>index uniques<\/strong>&nbsp;aux valeurs d&rsquo;un tableau.<br>\u2295 \u2013 Grouper les \u00e9l\u00e9ments.<br>\u29fb \u2013 Compter le nombre d&rsquo;occurrences ou la longueur d&rsquo;un groupe.<br>\u22a2 \u2013 Garder le premier \u00e9l\u00e9ment d&rsquo;un vecteur.<br>&gt;\u2082 \u2013 Tester si la valeur est sup\u00e9rieure \u00e0 2.<br>\/\u21a5 \u2013 R\u00e9cup\u00e9rer le&nbsp;<strong>maximum<\/strong>&nbsp;des \u00e9l\u00e9ments.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde0 Solution Uiua<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>CHA\u2081\u2081\u2086 \u2190 \/\u21a5\u00d7\u00d7\u22b8&gt;\u2082\u2295\u2283\u29fb\u22a2\u22b8\u229b\u22a5\u2081\u2080\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd0d Explications<\/h2>\n\n\n\n<p>La fonction&nbsp;<code>CHA\u2081\u2081\u2086<\/code>&nbsp;calcule le score maximum en identifiant les chiffres r\u00e9p\u00e9t\u00e9s au moins trois fois, puis en multipliant leur valeur par le nombre de fois o\u00f9 ils peuvent.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u22b8\u229b\u22a5\u2081\u2080 84884284\n&#091;4 8 2 4 8 8 4 8]\n&#091;0 1 2 0 1 1 0 1]\t\t# Il y a 3 chiffres diff\u00e9rents (4, 8, 2) index\u00e9s par 0, 1 et 2\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\u2295\u2283\u29fb\u22a2\u22b8\u229b\u22a5\u2081\u2080 84884284\n\n&#091;4 8 2]\n&#091;3 4 1]\t# il y a 3 fois \"4\", 4 fois \"8\" et 1 fois \"2\"\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\u22b8&gt;\u2082\u2295\u2283\u29fb\u22a2\u22b8\u229b\u22a5\u2081\u2080 84884284\n&#091;4 8 2]\t# il n'y a que des 4, 8 et 2\n&#091;3 4 1]\t# 3 fois le \"4\", 4 fois le \"8\", 1 fois le \"2\"\n&#091;1 1 0]\t# On ne garde que 3 et 4 car 1 &lt; 3\n<\/code><\/pre>\n\n\n\n<p>On multiplie les 3 vecteurs pour obtenir les scores (\u00d7\u00d7) et on r\u00e9cup\u00e8re le maximum (\/\u21a5).<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83e\udde9 Challenge 142 : Nombres de Diophante<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf \u00c9nonc\u00e9<\/h2>\n\n\n\n<p>Trouver&nbsp;<strong>quatre nombres entiers<\/strong>&nbsp;tels que le produit de deux quelconques de ces nombres soit un&nbsp;<strong>carr\u00e9 moins un<\/strong>&nbsp;.<\/p>\n\n\n\n<p>Il y a une&nbsp;<strong>infinit\u00e9 de quadruplets<\/strong>&nbsp;(a, b, c, d)&nbsp;tels que&nbsp;ab+1,&nbsp;ac+1,&nbsp;ad+1,&nbsp;bc+1&nbsp;et&nbsp;cd+1&nbsp;soient des carr\u00e9s parfaits.<\/p>\n\n\n\n<p>En particulier, cette condition est remplie par le quadruplet param\u00e9trique&nbsp;(k-1, k+1, 4k, 4k(4k\u00b2-1))&nbsp;pour tout&nbsp;k &gt; 1.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd11 Mots-cl\u00e9s Uiua<\/h2>\n\n\n\n<p>\u21e1\u2082 \u2013 Ajouter 2 \u00e0 l&rsquo;intervalle de base (d\u00e9calage)<br>\u2283 \u2013 Appeler 2 fonctions sur une m\u00eame valeur<br>\u27dc \u2013 Garder la valeur initiale en haut de la pile<br>\u22b8\u22b8\u2218 \u2013 Double duplication<br>\u229f\u2084 \u2013 Combiner 4 vecteurs en une matrice<br>\u00d7 \u2013 Multiplication<br>\u2349 \u2013 Transpos\u00e9e<br>\u21cc \u2013 Inverser l&rsquo;ordre des lignes<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde0 Solution Uiua<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>CHA\u2081\u2084\u2082 \u2190 \u2349\u21cc\u229f\u2084 \u00d7-1\u00d7\u27dc(\u22b8\u22b8\u2218\u2283(\u00d74|\u2283+-1))\u21e1\u2082\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd0d Explications<\/h2>\n\n\n\n<p>Le code Uiua est con\u00e7u pour g\u00e9n\u00e9rer la s\u00e9rie de quadruplets&nbsp;(k\u22121,k+1,4k,4k(4k\u00b2 \u22121)).<br>\u2022 \u21e1\u2082 N : Cette fonction prend N en entr\u00e9e et g\u00e9n\u00e8re un intervalle auquel elle ajoute 2, produisant la liste [2,3,4,&#8230;,N+1].<br>\u2022 \u2283(\u00d74|\u2283+-1) : Cet op\u00e9rateur structur\u00e9 est utilis\u00e9 pour appliquer deux actions distinctes : la multiplication par 4 (\u00d74), et les op\u00e9rations d&rsquo;ajout et soustraction de 1 (\u2283+-1).<br>\u2022 \u27dc(\u22b8\u22b8\u2218\u2283(\u00d74|\u2283+-1))\u21e1\u2082 : On duplique deux fois l&rsquo;op\u00e9ration de multiplication par 4. L&rsquo;op\u00e9rateur \u27dc maintient l&rsquo;intervalle g\u00e9n\u00e9r\u00e9 par \u21e1\u2082 en haut de la pile.<br>\u2022 \u229f\u2084 : Combine les quatre vecteurs situ\u00e9s en haut de la pile pour former une matrice.<br>\u2022 \u2349\u21cc : Inverse l&rsquo;ordre des lignes (\u21cc) puis transpose (\u2349) la matrice pour obtenir le format de sortie d\u00e9sir\u00e9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddfe Exemples<\/h2>\n\n\n\n<p>Pour N=20, la fonction g\u00e9n\u00e8re les 20 premiers quadruplets.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CHA\u2081\u2084\u2082 20\n\n\u256d\u2500\n\u2577 1 3 8 120\n2 4 12 420\n3 5 16 1008\n4 6 20 1980\n5 7 24 3432\n6 8 28 5460\n7 9 32 8160\n8 10 36 11628\n9 11 40 15960\n10 12 44 21252\n11 13 48 27600\n12 14 52 35100\n13 15 56 43848\n14 16 60 53940\n15 17 64 65472\n16 18 68 78540\n17 19 72 93240\n18 20 76 109668\n19 21 80 127920\n20 22 84 148092\n\u256f\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">V\u00e9rification<\/h2>\n\n\n\n<p>Pour le quadruplet (3,5,16,1008), on peut v\u00e9rifier que les&nbsp;<strong>produits plus un<\/strong>&nbsp;sont bien des carr\u00e9s parfaits :<br>\u2022 3\u00d75+1=16=4\u00b2<br>\u2022 3\u00d716+1=49=7\u00b2<br>\u2022 3\u00d71008+1=3025=55\u00b2<br>\u2022 5\u00d716+1=81=9\u00b2<br>\u2022 16\u00d71008+1=16129=127\u00b2<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Initiation au langage Uiua \ud83e\udde9 Challenge 4 : P\u00e9rim\u00e8tre et surface d&rsquo;un rectangle \ud83c\udfaf \u00c9nonc\u00e9 Soit un rectangle de c\u00f4t\u00e9&nbsp;a&nbsp;et&nbsp;b. Avec&nbsp;a&nbsp;et&nbsp;b&nbsp;respectivement sur la pile, faire un programme qui sort le&nbsp;P\u00e9rim\u00e8tre du rectangle&nbsp;et la&nbsp;Surface du rectangle. Les formules utilis\u00e9es sont : &hellip; <a href=\"https:\/\/blog.univ-angers.fr\/mathsinfo\/2025\/10\/29\/challenges-en-langage-uiua-dapres-les-mpo-du-forum-silicium\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4913,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-2059","post","type-post","status-publish","format-standard","hentry","category-youtube"],"_links":{"self":[{"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/posts\/2059","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/users\/4913"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/comments?post=2059"}],"version-history":[{"count":1,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/posts\/2059\/revisions"}],"predecessor-version":[{"id":2060,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/posts\/2059\/revisions\/2060"}],"wp:attachment":[{"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/media?parent=2059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/categories?post=2059"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.univ-angers.fr\/mathsinfo\/wp-json\/wp\/v2\/tags?post=2059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}