Path: ...!3.eu.feeder.erje.net!feeder.erje.net!usenet.goja.nl.eu.org!paganini.bofh.team!usenet.ovh!news.usenet.ovh!.POSTED!not-for-mail From: robby <me@pla.net.invalid> Newsgroups: fr.sci.maths Subject: =?UTF-8?Q?Re=3A_=5BLONG=5D=5BSolution_et_programme=5D_solve_a_+_k_b?= =?UTF-8?Q?_=7E_entier_=28_i=2Ee=2E_=C3=A0_moins_d=27epsilon_d=27un_entier_?= =?UTF-8?Q?=29?= Date: Fri, 24 Nov 2023 18:55:00 +0100 Organization: Alfa Network En Travaux Message-ID: <ujqo1k$1h3re$1@news.usenet.ovh> References: <654d3788$0$25951$426a74cc@news.free.fr> <uirkc1$176f$1@cabale.usenet-fr.net> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Fri, 24 Nov 2023 17:55:00 -0000 (UTC) Injection-Info: news.usenet.ovh; posting-account="robby"; logging-data="1609582"; mail-complaints-to="abuse@usenet.ovh" User-Agent: Mozilla Thunderbird Cancel-Lock: sha256:RXjjwH0yju14RuDkaJIQ5HAFzz80/lfP16V/RtV1odQ= In-Reply-To: <uirkc1$176f$1@cabale.usenet-fr.net> Content-Language: fr Bytes: 5036 Lines: 110 comme mon accès usenet s'est stabilisé, je recopie ici l'échange par mail et y répond dans le post précédant. Le 13/11/2023 à 22:08, Olivier Miakinen a écrit : > Le 13/11/2023 10:59, Fabrice NEYRET a écrit : >> Olivier Miakinen a écrit : >>> Tout d'abord, je rappelle que si b est entier ou rationnel, >> >> en pratique b = 2pi ;-) > > C'est parfait. > > >>> Pour simplifier le problème, je commence par calculer la partie entière et la >>> partie fractionnaire de a et de b (respectivement a1 et b1 pour la partie >>> entière, a2 et b2 pour la partie fractionnaire). On est bien d'accord que >>> si (a2 + k b2) est proche d'un entier, alors il en sera de même pour (a + k b) >>> qui est égal à (a1 + k b1) + (a2 + k b2). >> astucieux. le genre de manip de théorie des nombres dont je n'ai pas l'habitude :-) >> >> >> >>> Je calcule alors la fraction continue (ou continuée) de b2, et ses réduites >>> successives, jusqu'à ce que le dénominateur de la réduite soit supérieur ou >>> égal à 1/epsilon. >> >> mon but était d'éviter les boucles, mais comme b est une constante ça va. >> >>> Je calcule alors la fraction continue (ou continuée) de b2, et ses réduites >>> successives, jusqu'à ce que le dénominateur de la réduite soit supérieur ou >>> égal à 1/epsilon. >> >> mon but était d'éviter les boucles, mais comme b est une constante ça va. > > Oui, tu peux précalculer toutes les réduites pour tout niveau de précision > souhaité. En plus, avec 2pi, il te suffit d'une poignée de valeurs à tester > pour avoir une très bonne précision. > >>> a = 2.718281828459045 = 2 + 0.7182818284590451 (a1 + a2) >>> b = 3.141592653589793 = 3 + 0.14159265358979312 (b1 + b2) >>> profondeur = 3 >>> Fraction continue de b2 : [0, 7, 15] >>> Réduite de b2 : 15/106 = 0.14150943396226415 >>> Ceci convient pour epsilon ≥ 1/106 = 0.009433962264150943 >>> delta = 106 × b2 - 15 = 0.008821280518070296 >>> delta est positif, on calcule incr = (1 − a2)/(delta) >>> incr = 31.93619916789386, arrondi à 32 >>> Le nombre k cherché vaut 32 × 106 = 3392 >> >> et on est alors certain qu'il n'y en a pas de plus petit ? > > Alors non. > > D'une part, parce que l'on peut améliorer la précision d'un facteur de 2 > sans aucun problème. En effet, le calcul que je faisais s'assurait qu'entre > deux valeurs successives de k j'obtenais deux résultats successifs espacés > d'epsilon. Mais du coup, lorsqu'il y a un entier entre ces deux résultats > successifs, cet entier est à une distance inférieure à epsilon/2 de l'un > des deux résultats, ce qui est deux fois meilleur que la distance d'epsilon > que j'avais envisagée ! > > Et d'autre part parce que les calculs que je fais dépendent essentiellement > de la valeur de b et ne peuvent pas vraiment tenir compte de la valeur de a. > Par exemple, si tu prends a = 7−2pi et b = 2pi, mon algorithme n'a aucun > moyen de trouver que la valeur k = 1 donne exactement a + k b = 7. > > Chose amusante, avec ces valeurs a = 7−2pi et b = 2pi, le k trouvé pour > la réduite 1/3 (k = 15) est plus grand que celui trouvé pour la réduite > 1/4 (k = 8). > > > >>> C'est très efficace parce que la fraction continue de pi comporte >>> plusieurs grands nombres (7, 15, 292) et que donc les approximations >>> sont très bonnes. >> >> j'espere qu'il en va de même de 2pi, alors ! > > Je m'attendais à ce que ce soit vraiment le cas, mais il y a un peu plus > de petits nombres au début pour 2pi que pour pi. Curieux. Cela dit c'est > quand même bien mieux que e, surtout si tu vas jusqu'à la profondeur 7 > et le nombre 146. > > pi : [3, 7, 15, 1, 292, 1, 1, 1, 2, 1, ...] > 2pi : [6, 3, 1, 1, 7, 2, 146, 3, 6, 1, ...] -- Fabrice