Deutsch   English   Français   Italiano  
<XdfGFVBTuIjr2dOfD-NfgcMln3Y@jntp>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder8.news.weretis.net!pasdenom.info!from-devjntp
Message-ID: <XdfGFVBTuIjr2dOfD-NfgcMln3Y@jntp>
JNTP-Route: news2.nemoweb.net
JNTP-DataType: Article
Subject: Re: [Jeux] Trouver le calcul =?UTF-8?Q?cach=C3=A9?=
References: <sue0gr$5e5$1@gioia.aioe.org> <FuztH07Mnjo7KuRzQAIPtBnEmd4@jntp> <suq2n6$1qg3$1@gioia.aioe.org>
 <suq5bf$mct$1@gioia.aioe.org> <q0sztwMPMR-OCGqmyMsTpSkCEIg@jntp> <6211e67a$0$25354$426a74cc@news.free.fr>
 <A3JsdCfezBgR_A9rxk9o62u6aaA@jntp> <62135c4b$0$21059$426a74cc@news.free.fr> <x1X1qoeAX4Ad37rF0JD4hPkU_T0@jntp>
 <6214ff2c$0$3695$426a74cc@news.free.fr>
Newsgroups: fr.sci.maths
JNTP-HashClient: P_2MxTKNnxWgT3bDw0k0Vc7zURs
JNTP-ThreadID: sue0gr$5e5$1@gioia.aioe.org
JNTP-Uri: http://news2.nemoweb.net/?DataID=XdfGFVBTuIjr2dOfD-NfgcMln3Y@jntp
Supersedes: <wteEO9NOTw09iotsNM5Kg1UhlgA@jntp>
User-Agent: Nemo/0.999a
JNTP-OriginServer: news2.nemoweb.net
Date: Wed, 23 Feb 22 00:38:11 +0000
Organization: Nemoweb
JNTP-Browser: Mozilla/5.0 (Linux; Android 11; SM-T290) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.101 Safari/537.36
Injection-Info: news2.nemoweb.net; posting-host="095f3744c0ffd4df4f350c9c40c789002c6e538a"; logging-data="2022-02-23T00:38:11Z/6639070"; posting-account="142@news2.nemoweb.net"; mail-complaints-to="newsmaster@news2.nemoweb.net"
JNTP-ProtocolVersion: 0.21.1
JNTP-Server: PhpNemoServer/0.94.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-JNTP-JsonNewsGateway: 0.96
From: Samuel DEVULDER <samuel.devulder@laposte.net.invalid>
Bytes: 3344
Lines: 54

Le 22/02/2022 à 16:20, Jacques Mathon a écrit :

> Je me propose de te le faire jouer justement pour 
> éprouver ton code. Si tu en es d'accord j'attends ta première 
> proposition pour un hard dont le résultat vaut 132.
> Ou si tu préfères, tu pars de mon premier coup et de sa réponse.
> 5  4  * 7  /  3 +  6
> ⬜ 🟨 🟨 ⬜ 🟨 ⬜ 🟩 🟨
> 

J’ai encode cela comme suit:


main :- find([
"0124689+-*/()", % tous les symboles non gris
"012689+-*/()", % orange -> 4 retiré de la liste
"0124689+-/()", % orange -> 5 retiré de la liste
"0124689+-*/()",
"0124689+-*()", % orange -> / retiré 
"0124689+-*/()",
"+", % vert -> seul + reste
"012489+-*/()"
],132,Str), puts(Str), nl, fail.

A savoir qu’on part de la chaîne "0123456789+-*/" partout qui contient 
tous les symboles possibles. Ensuite on retire tous les symboles 
correspondants aux cases grises. Elles sont interdite.

On place 8 copies de la chaîne dans la liste passée à find, puis pour 
chaque case orange on retire le symbole de la chaîne. On ne garde aussi 
que le seul symbole des cases vertes.

Le code va alors construire plein de chaînes plausible respectant ces 
contraintes et valant 132.

Si j’impose de ne pas avoir se doublons, il n’y a pas beaucoup de 
résultats (au bug près)
190-62+4
204-81+9
209-81+4
214-90+8
218-90+4
6/2*41+9
8*(16)+4
9*14-2+8
(16*8)+4
(16)*8+4
(8)*16+4

Cela s’obtiens en 10 secondes sur un smartphone.

Le code "as is" est là : https://pastebin.com/hWGjaHnW

Edit: je pense qu’il y a un bug car je ne vois pas les solutions basées 
sur la commutativité.