Path: ...!3.eu.feeder.erje.net!feeder.erje.net!usenet.goja.nl.eu.org!pasdenom.info!from-devjntp Message-ID: JNTP-Route: news2.nemoweb.net JNTP-DataType: Article Subject: Re: [Jeux] Trouver le calcul =?UTF-8?Q?cach=C3=A9?= References: <62163ed6$0$23898$426a74cc@news.free.fr> <62167320$0$24238$426a74cc@news.free.fr> <621758f0$0$11596$426a74cc@news.free.fr> Newsgroups: fr.sci.maths JNTP-HashClient: EsCeguQiTA0oZ6oxIAcgrU0YN90 JNTP-ThreadID: sue0gr$5e5$1@gioia.aioe.org JNTP-Uri: http://news2.nemoweb.net/?DataID=YE6W6e8se1frIY95DE63xP-Qngs@jntp User-Agent: Nemo/0.999a JNTP-OriginServer: news2.nemoweb.net Date: Thu, 24 Feb 22 18:44:02 +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-24T18:44:02Z/6645611"; 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 Bytes: 2576 Lines: 31 Le 24/02/2022 à 11:07, Jacques Mathon a écr >> Quant à 82/4*6+9, il est rejeté car 82/4 n’est pas entier. La solution >> recherchée contient bien une division "exacte" ? > > Non, c'est bien celle là ! Arf, j’avais présumé que c’était interdit. > C'était la raison de mon "Et alors ?". Je vais donc ajouter le support pour des nombres rationnels (c’est facile en Prolog) ------8<–------------------------------------------- rational(_/_). calc(U, V, P/Q) :- % normalize X is U, ( X=0 -> P=0, Q=1 ; Y is V, Z is gcd(X,Y), P is X div Z, Q is Y div Z ). calc(A/B, +, C/D, R) :- calc(A*D+B*C, B*D, R). calc(A/B, -, C/D, R) :- calc(A*D-B*C, B*D, R). calc(A/B, *, C/D, R) :- calc(A*C, B*D, R). calc(_, /, 0/_, _) :- !, fail. % can’t divide by 0 calc(A/B, /, C/D, R) :- calc(A*D, B*C, R). ----8<---–------------------------------------------