<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - Algorithmes et structures de données</title>
		<link>https://www.developpez.net/forums/</link>
		<description><![CDATA[Forum d'entraide sur l'algorithmique. Avant de poster : Cours d'algorithmique]]></description>
		<language>fr</language>
		<lastBuildDate>Tue, 02 Jun 2026 16:02:23 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - Algorithmes et structures de données</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title>Représentation des nombres en machine : précision, limites et pièges</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2183441&amp;goto=newpost</link>
			<pubDate>Mon, 27 Apr 2026 18:49:35 GMT</pubDate>
			<description>Bonjour, 
 
Je vous propose...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je vous propose un nouvel article : <a href="https://denishulo.developpez.com/tutoriels/algo/representation-nombres-machine/" target="_blank">« Représentation des nombres en machine : précision, limites et pièges »</a>.<br />
<br />
L'objectif est d’expliquer les différences entre les nombres en mathématiques et leur représentation en machine, en mettant l’accent sur les nombres à virgule flottante, la norme IEEE 754 et les erreurs numériques associées.<br />
<br />
Il s’adresse à des développeurs ayant des bases en programmation et vise à rendre accessibles des notions souvent sources de confusion (par exemple : pourquoi 0.1 + 0.2 &#8800; 0.3).<br />
<br />
<img src="https://www.developpez.net/forums/attachments/p675976d1777315483/general-developpement/algorithme-mathematiques/algorithmes-structures-donnees/representation-nombres-machine-precision-limites-pieges/inegalite.png/" border="0" alt="Nom : inegalite.png
Affichages : 32749
Taille : 69,5 Ko"  style="float: CONFIG" /><br />
<br />
Le contenu couvre :<br />
<br />
<ul><li style="">les bases de la représentation binaire ;</li><li style="">le fonctionnement des nombres flottants ;</li><li style="">la structure IEEE 754 ;</li><li style="">les erreurs d’arrondi et leurs conséquences ;</li><li style="">ainsi que quelques notions plus avancées (cancellation catastrophique, perte de précision, somme de Kahan).</li></ul><br />
<br />
Tous les exemples sont réalisés en Python, mais les concepts présentés sont transposables à la plupart des langages.<br />
<br />
Bonne lecture ;)</div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p675976d1777315483/general-developpement/algorithme-mathematiques/algorithmes-structures-donnees/representation-nombres-machine-precision-limites-pieges/inegalite.png/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f60/general-developpement/algorithme-mathematiques/algorithmes-structures-donnees/">Algorithmes et structures de données</category>
			<dc:creator>User</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2183441/general-developpement/algorithme-mathematiques/algorithmes-structures-donnees/representation-nombres-machine-precision-limites-pieges/</guid>
		</item>
		<item>
			<title>Mathématiques ensemble Q les quotients</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182068&amp;goto=newpost</link>
			<pubDate>Thu, 12 Feb 2026 12:43:10 GMT</pubDate>
			<description>Bonjour ! 
Je suis peut-etre...</description>
			<content:encoded><![CDATA[<div>Bonjour !<br />
Je suis peut-etre en train de réinventer la roue...<br />
Deux petits bouts de code pour utiliser, modeliser des quotients...<br />
C'est gratuit et libre... Vous pouvez utiliser, modifier à votre guise :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
&nbsp;
#ifndef QTT
#define QTT
&nbsp;
    <span style="color: #0000ff;">class</span> quotient
    <span class="br0">&#123;</span>
        <span style="color: #0000ff;">private</span>:
            <span style="color: #0000ff;">int</span> numerateur;
            <span style="color: #0000ff;">int</span> denominateur;
&nbsp;
        <span style="color: #0000ff;">public</span>:
            quotient<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>numerateur = <span style="color: #cc66cc;">1</span>; denominateur = <span style="color: #cc66cc;">1</span>;<span class="br0">&#125;</span>
            quotient<span class="br0">&#40;</span><span style="color: #0000ff;">int</span>, <span style="color: #0000ff;">int</span><span class="br0">&#41;</span>;
            quotient<span class="br0">&#40;</span><span style="color: #0000ff;">int</span> n<span class="br0">&#41;</span><span class="br0">&#123;</span>numerateur = n; denominateur = <span style="color: #cc66cc;">1</span>;<span class="br0">&#125;</span>
            <span style="color: #0000ff;">void</span> reduire<span class="br0">&#40;</span><span class="br0">&#41;</span>;
            <span style="color: #0000ff;">void</span> addition<span class="br0">&#40;</span>quotient, quotient<span class="br0">&#41;</span>;
            <span style="color: #0000ff;">void</span> soustraction<span class="br0">&#40;</span>quotient, quotient<span class="br0">&#41;</span>;
            <span style="color: #0000ff;">void</span> multiplication<span class="br0">&#40;</span>quotient, quotient<span class="br0">&#41;</span>;
            <span style="color: #0000ff;">void</span> division<span class="br0">&#40;</span>quotient, quotient<span class="br0">&#41;</span>;
            <span style="color: #0000ff;">void</span> saisie<span class="br0">&#40;</span><span class="br0">&#41;</span>;
            <span style="color: #0000ff;">void</span> affichage<span class="br0">&#40;</span><span class="br0">&#41;</span>;
    <span class="br0">&#125;</span>;</pre></td></tr></table></code><hr />
</div>et :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
&nbsp;
#include <span style="color: #FF0000;">&quot;quotient.hpp&quot;</span>
#include &lt;iostream&gt;
&nbsp;
quotient::quotient<span class="br0">&#40;</span><span style="color: #0000ff;">int</span> n, <span style="color: #0000ff;">int</span> d<span class="br0">&#41;</span>
<span class="br0">&#123;</span>
    <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>d == <span style="color: #cc66cc;">0</span><span class="br0">&#41;</span>
    <span class="br0">&#123;</span>
        std::cout &lt;&lt; <span style="color: #FF0000;">&quot;erreur !<span style="color: #800000;">\n</span>division par zero !<span style="color: #800000;">\n</span>&quot;</span>;
    <span class="br0">&#125;</span>
    <span style="color: #0000ff;">else</span>
    <span class="br0">&#123;</span>
        numerateur = n;
        denominateur = d;
        reduire<span class="br0">&#40;</span><span class="br0">&#41;</span>;
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> quotient::saisie<span class="br0">&#40;</span><span class="br0">&#41;</span>
<span class="br0">&#123;</span>
    <span style="color: #0000ff;">int</span> n, d;
    std::cout &lt;&lt; <span style="color: #FF0000;">&quot;numerateur : &quot;</span>;
    std::cin &gt;&gt; n;
    std::cout &lt;&lt; <span style="color: #FF0000;">&quot;denominateur : &quot;</span>;
    std::cin &gt;&gt; d;
    <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>d == <span style="color: #cc66cc;">0</span><span class="br0">&#41;</span>
    <span class="br0">&#123;</span>
        std::cout &lt;&lt; <span style="color: #FF0000;">&quot;erreur !<span style="color: #800000;">\n</span>division par zero !<span style="color: #800000;">\n</span>&quot;</span>;
    <span class="br0">&#125;</span>
    <span style="color: #0000ff;">else</span>
    <span class="br0">&#123;</span>
        numerateur = n;
        denominateur = d;
        reduire<span class="br0">&#40;</span><span class="br0">&#41;</span>;
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> quotient::affichage<span class="br0">&#40;</span><span class="br0">&#41;</span>
<span class="br0">&#123;</span>
    <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>numerateur == <span style="color: #cc66cc;">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span>std::cout &lt;&lt; <span style="color: #FF0000;">&quot;0<span style="color: #800000;">\n</span>&quot;</span>; <span style="color: #0000ff;">return</span>;<span class="br0">&#125;</span>
    <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>denominateur == <span style="color: #cc66cc;">1</span><span class="br0">&#41;</span><span class="br0">&#123;</span>std::cout &lt;&lt; numerateur &lt;&lt; <span style="color: #FF0000;">'<span style="color: #800000;">\n</span>'</span>;<span class="br0">&#125;</span>
    <span style="color: #0000ff;">else</span>
    <span class="br0">&#123;</span>std::cout &lt;&lt; numerateur &lt;&lt; <span style="color: #FF0000;">'/'</span> &lt;&lt; denominateur &lt;&lt; <span style="color: #FF0000;">'<span style="color: #800000;">\n</span>'</span>;<span class="br0">&#125;</span>
<span class="br0">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> quotient::addition<span class="br0">&#40;</span>quotient a, quotient b<span class="br0">&#41;</span>
<span class="br0">&#123;</span>
    numerateur = a.numerateur*b.denominateur + b.numerateur*a.denominateur;
    denominateur = a.denominateur*b.denominateur;
    reduire<span class="br0">&#40;</span><span class="br0">&#41;</span>;
<span class="br0">&#125;</span>
<span style="color: #0000ff;">void</span> quotient::soustraction<span class="br0">&#40;</span>quotient a, quotient b<span class="br0">&#41;</span>
<span class="br0">&#123;</span>
    numerateur = a.numerateur*b.denominateur - b.numerateur*a.denominateur;
    denominateur = a.denominateur*b.denominateur;
    reduire<span class="br0">&#40;</span><span class="br0">&#41;</span>;
<span class="br0">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> quotient::multiplication<span class="br0">&#40;</span>quotient a, quotient b<span class="br0">&#41;</span>
<span class="br0">&#123;</span>
    numerateur = a.numerateur*b.numerateur;
    denominateur = a.denominateur*b.denominateur;
    reduire<span class="br0">&#40;</span><span class="br0">&#41;</span>;
<span class="br0">&#125;</span>
<span style="color: #0000ff;">void</span> quotient::division<span class="br0">&#40;</span>quotient a, quotient b<span class="br0">&#41;</span>
<span class="br0">&#123;</span>
    numerateur = a.numerateur*b.denominateur;
    denominateur = a.denominateur*b.numerateur;
    reduire<span class="br0">&#40;</span><span class="br0">&#41;</span>;
<span class="br0">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> quotient::reduire<span class="br0">&#40;</span><span class="br0">&#41;</span>
<span class="br0">&#123;</span>
    <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>numerateur &lt;= denominateur<span class="br0">&#41;</span>
    <span class="br0">&#123;</span>
        <span style="color: #0000ff;">int</span> m = <span style="color: #cc66cc;">2</span>;
        <span style="color: #0000ff;">while</span> <span class="br0">&#40;</span>m &lt;= numerateur<span class="br0">&#41;</span>
        <span class="br0">&#123;</span>
            <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>numerateur%m == <span style="color: #cc66cc;">0</span> &amp;&amp; denominateur%m == <span style="color: #cc66cc;">0</span><span class="br0">&#41;</span>
            <span class="br0">&#123;</span>numerateur = numerateur/m; denominateur = denominateur/m;<span class="br0">&#125;</span>
            <span style="color: #0000ff;">else</span>
            <span class="br0">&#123;</span>m++;<span class="br0">&#125;</span>
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
    <span style="color: #0000ff;">else</span>
    <span class="br0">&#123;</span>
        <span style="color: #0000ff;">int</span> m = <span style="color: #cc66cc;">2</span>;
        <span style="color: #0000ff;">while</span> <span class="br0">&#40;</span>m &lt;= denominateur<span class="br0">&#41;</span>
        <span class="br0">&#123;</span>
            <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>numerateur%m == <span style="color: #cc66cc;">0</span> &amp;&amp; denominateur%m == <span style="color: #cc66cc;">0</span><span class="br0">&#41;</span>
            <span class="br0">&#123;</span>numerateur = numerateur/m; denominateur = denominateur/m;<span class="br0">&#125;</span>
            <span style="color: #0000ff;">else</span>
            <span class="br0">&#123;</span>m++;<span class="br0">&#125;</span>
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div>Ca mériterait d'etre amélioré.<br />
Je suis plutot fier de mon algorithme de reduction de la fraction.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f60/general-developpement/algorithme-mathematiques/algorithmes-structures-donnees/">Algorithmes et structures de données</category>
			<dc:creator>GraineDeDev</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182068/general-developpement/algorithme-mathematiques/algorithmes-structures-donnees/mathematiques-ensemble-q-quotients/</guid>
		</item>
		<item>
			<title>Algorithmes pseudo code Algobox</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2179214&amp;goto=newpost</link>
			<pubDate>Fri, 12 Sep 2025 14:41:14 GMT</pubDate>
			<description><![CDATA[Bonjour, j'utilise Algo box...]]></description>
			<content:encoded><![CDATA[<div>Bonjour, j'utilise Algo box afin de réaliser mes instructions algorithmiques, cependant j'essaie d'utiliser l'appel de fonction ci-dessous :<br />
<br />
Ma fonction est la suivante :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td valign="top"><pre style="margin: 0">FONCTIONS_UTILISEES
  <span style="color: #0000ff;">FONCTION</span> rendreTableau<span class="br0">&#40;</span>tab<span class="br0">&#41;</span>
    VARIABLES_FONCTION
      u EST_DU_TYPE NOMBRE
    DEBUT_FONCTION
    <span style="color: #0000ff;">POUR</span> u <span style="color: #0000ff;">ALLANT_DE</span> u A <span style="color: #cc66cc;">7</span>
      DEBUT_POUR
      <span style="color: #0080ff;">AFFICHER</span>* tab<span class="br0">&#91;</span>u<span class="br0">&#93;</span>
      <span style="color: #0000ff;">FIN_POUR</span>
    FIN_FONCTION</pre></td></tr></table></code><hr />
</div>Mon appel de fonction ci-dessous :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">APPELER_FONCTION rendreTableau<span class="br0">&#40;</span>T<span class="br0">&#41;</span></code><hr />
</div>Hélas l'algorithme ci-dessous ne fonctionne pas a cause de la fonction, celle-ci l'arréte !!, celle-ci et t'elle bien déclaré et appélé avec ses différents passage de paramétres ?<br />
<br />
<br />
<br />
L'algorithme au complet ci-dessous:<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
FONCTIONS_UTILISEES
  <span style="color: #0000ff;">FONCTION</span> rendreTableau<span class="br0">&#40;</span>tab<span class="br0">&#41;</span>
    VARIABLES_FONCTION
      u EST_DU_TYPE NOMBRE
      tab EST_DU_TYPE LISTE
    DEBUT_FONCTION
    <span style="color: #808080;">//tableau PREND_LA_VALEUR tab</span>
    <span style="color: #0000ff;">POUR</span> u <span style="color: #0000ff;">ALLANT_DE</span> u A <span style="color: #cc66cc;">7</span>
      DEBUT_POUR
      <span style="color: #0080ff;">AFFICHER</span>* tab<span class="br0">&#91;</span>u<span class="br0">&#93;</span>
      <span style="color: #0000ff;">FIN_POUR</span>
    FIN_FONCTION
<span style="color: #0000ff;">VARIABLES</span>
  i EST_DU_TYPE NOMBRE
  j EST_DU_TYPE NOMBRE
  T EST_DU_TYPE LISTE
  temp EST_DU_TYPE NOMBRE
  posmin EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
  T<span class="br0">&#91;</span><span style="color: #cc66cc;">0</span><span class="br0">&#93;</span> PREND_LA_VALEUR <span style="color: #cc66cc;">25</span>
  T<span class="br0">&#91;</span><span style="color: #cc66cc;">1</span><span class="br0">&#93;</span> PREND_LA_VALEUR <span style="color: #cc66cc;">10</span>
  T<span class="br0">&#91;</span><span style="color: #cc66cc;">2</span><span class="br0">&#93;</span> PREND_LA_VALEUR <span style="color: #cc66cc;">13</span>
  T<span class="br0">&#91;</span><span style="color: #cc66cc;">3</span><span class="br0">&#93;</span> PREND_LA_VALEUR <span style="color: #cc66cc;">31</span>
  T<span class="br0">&#91;</span><span style="color: #cc66cc;">4</span><span class="br0">&#93;</span> PREND_LA_VALEUR <span style="color: #cc66cc;">22</span>
  T<span class="br0">&#91;</span><span style="color: #cc66cc;">5</span><span class="br0">&#93;</span> PREND_LA_VALEUR <span style="color: #cc66cc;">4</span>
  T<span class="br0">&#91;</span><span style="color: #cc66cc;">6</span><span class="br0">&#93;</span> PREND_LA_VALEUR <span style="color: #cc66cc;">2</span>
  T<span class="br0">&#91;</span><span style="color: #cc66cc;">7</span><span class="br0">&#93;</span> PREND_LA_VALEUR <span style="color: #cc66cc;">18</span>
  i PREND_LA_VALEUR <span style="color: #cc66cc;">0</span>
  j PREND_LA_VALEUR <span style="color: #cc66cc;">0</span>
  temp PREND_LA_VALEUR <span style="color: #cc66cc;">0</span>
  <span style="color: #0000ff;">POUR</span> i <span style="color: #0000ff;">ALLANT_DE</span> i A <span style="color: #cc66cc;">6</span>
    DEBUT_POUR
    posmin PREND_LA_VALEUR i
    <span style="color: #0080ff;">AFFICHER</span> <span style="color: #FF0000;">&quot; Passage &quot;</span>
    <span style="color: #0080ff;">AFFICHER</span>* i
    <span style="color: #0000ff;">POUR</span> j <span style="color: #0000ff;">ALLANT_DE</span> i + <span style="color: #cc66cc;">1</span> A <span style="color: #cc66cc;">7</span>
      DEBUT_POUR
      <span style="color: #0080ff;">AFFICHER</span> <span style="color: #FF0000;">&quot;J =&quot;</span>
      <span style="color: #0080ff;">AFFICHER</span> j
      <span style="color: #0000ff;">SI</span> <span class="br0">&#40;</span>T<span class="br0">&#91;</span>j<span class="br0">&#93;</span> &lt; T<span class="br0">&#91;</span>posmin<span class="br0">&#93;</span><span class="br0">&#41;</span> <span style="color: #0000ff;">ALORS</span>
        DEBUT_SI
        <span style="color: #0080ff;">AFFICHER</span> <span style="color: #FF0000;">&quot;la condition est verifi&eacute; &quot;</span>
        <span style="color: #0080ff;">AFFICHER</span> T<span class="br0">&#91;</span>j<span class="br0">&#93;</span>
        <span style="color: #0080ff;">AFFICHER</span> <span style="color: #FF0000;">&quot; inf&eacute;rieur &agrave; &quot;</span>
        <span style="color: #0080ff;">AFFICHER</span> T<span class="br0">&#91;</span>posmin<span class="br0">&#93;</span>
        <span style="color: #0080ff;">AFFICHER</span> <span style="color: #FF0000;">&quot; , position min &quot;</span>
        <span style="color: #0080ff;">AFFICHER</span> posmin
        <span style="color: #0080ff;">AFFICHER</span> <span style="color: #FF0000;">&quot;, la position minimum est maintenant &quot;</span>
        posmin PREND_LA_VALEUR j
        <span style="color: #0080ff;">AFFICHER</span> posmin
        <span style="color: #0080ff;">AFFICHER</span> <span style="color: #FF0000;">&quot; sa valeur est &quot;</span>
        <span style="color: #0080ff;">AFFICHER</span> T<span class="br0">&#91;</span>j<span class="br0">&#93;</span>
        <span style="color: #0080ff;">AFFICHER</span> <span style="color: #FF0000;">&quot; , la valeur &agrave; &ecirc;tre compar&eacute; est maintenant &quot;</span>
        <span style="color: #0080ff;">AFFICHER</span>* T<span class="br0">&#91;</span>j<span class="br0">&#93;</span>
        <span style="color: #0000ff;">FIN_SI</span>
        <span style="color: #0000ff;">SINON</span>
          DEBUT_SINON
          <span style="color: #0080ff;">AFFICHER</span> <span style="color: #FF0000;">&quot;la condition est pas verifi&eacute; &quot;</span>
          <span style="color: #0080ff;">AFFICHER</span> T<span class="br0">&#91;</span>j<span class="br0">&#93;</span>
          <span style="color: #0080ff;">AFFICHER</span> <span style="color: #FF0000;">&quot; &quot;</span>
          <span style="color: #0080ff;">AFFICHER</span>* T<span class="br0">&#91;</span>posmin<span class="br0">&#93;</span>
          FIN_SINON
      <span style="color: #0000ff;">FIN_POUR</span>
    temp PREND_LA_VALEUR T<span class="br0">&#91;</span>posmin<span class="br0">&#93;</span>
    T<span class="br0">&#91;</span>posmin<span class="br0">&#93;</span> PREND_LA_VALEUR T<span class="br0">&#91;</span>i<span class="br0">&#93;</span>
    T<span class="br0">&#91;</span>i<span class="br0">&#93;</span> PREND_LA_VALEUR temp
    APPELER_FONCTION rendreTableau<span class="br0">&#40;</span>T<span class="br0">&#41;</span>
    <span style="color: #0000ff;">FIN_POUR</span>
FIN_ALGORITHME</pre></td></tr></table></code><hr />
</div>Merci de m'éclairer de vos lumières les amis</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f60/general-developpement/algorithme-mathematiques/algorithmes-structures-donnees/">Algorithmes et structures de données</category>
			<dc:creator>chlock62</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2179214/general-developpement/algorithme-mathematiques/algorithmes-structures-donnees/algorithmes-pseudo-code-algobox/</guid>
		</item>
		<item>
			<title><![CDATA[[python] ajuster une courbe avec scipy.optimize.curve_fit()]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2177969&amp;goto=newpost</link>
			<pubDate>Wed, 09 Jul 2025 06:52:29 GMT</pubDate>
			<description>Bonjour ou bonsoir, je...</description>
			<content:encoded><![CDATA[<div>Bonjour ou bonsoir, je travaille avec Python (v.3.13) pour modéliser mes données (mesures de spectres de raies en spectrométrie), (x_i, y_i) i=range(n), avec divers types de courbes, dont la base est une somme en nombre variable de gaussiennes (ou autres formes, mais laissons ça de côté). Pour ça, je recours à la fonction du package scipy, &quot;scipy.optimize.curve_fit&quot;. Mon problème est que &quot;curve_fit&quot; s'attend à recevoir la fonction à ajuster (enfin, ses paramètres), avec une liste explicite et &quot;figée&quot; de paramètres. Pour simplifier, je suppose ici que je connais exactement la position et la largeur des gaussiennes, et que je n'ai que leurs hauteurs à ajuster. Si par exemple, j'ai 3 raies, ma fonction d'ajustement sera :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br /></div></td><td valign="top"><pre style="margin: 0">def spectreTh&eacute;oriq<span class="br0">&#40;</span>xdata, haut1, haut2, haut3<span class="br0">&#41;</span> :
   <span style="color: #0000ff;">return</span> <span class="br0">&#40;</span> haut1*gaus1<span class="br0">&#40;</span>xdata<span class="br0">&#41;</span> + haut2*gaus2<span class="br0">&#40;</span>xdata<span class="br0">&#41;</span> + haut3*gaus3<span class="br0">&#40;</span>xdata<span class="br0">&#41;</span> <span class="br0">&#41;</span></pre></td></tr></table></code><hr />
</div>où les (trois) fonctions &quot;gaus1&quot;, etc., sont définies avant dans mon code. L'ajustement se fera ainsi :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">parmOptim = scipy.optimize.curve_fit<span class="br0">&#40;</span>spectreTh&eacute;oriq, xDonn&eacute;es, yDonn&eacute;es<span class="br0">&#41;</span></code><hr />
</div>où xDonnées est le vecteur des [x_i, i=1..n] (notation non python…) et similairement pour yDonnées.<br />
<br />
Mon problème est donc le suivant : je préfèrerais passer, ici le triplet des paramètres à ajuster, via un vecteur : parms = [haut1, haut2, haut3], parce que, comme dit plus haut, le nombre des gaussiennes est variable (et en réalité, j'ai aussi les autres paramètres comme les positions et les largeurs de ces &quot;gaussiennes&quot; à ajuster ; ici j'ai simplifié). Voici un script simplifié qui fonctionne, mais redemande du travail si je veux prendre en compte la 4è raie ! :-(<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br /></div></td><td valign="top"><pre style="margin: 0">#!/usr/bin/env python3
## fit_spectre_exmpl.py
&nbsp;
import numpy as np
import matplotlib.pyplot as plt
import scipy.optimize as sop
&nbsp;
def gaus_<span class="br0">&#40;</span>xdata, posit, larg<span class="br0">&#41;</span> :
   <span style="color: #0000ff;">return</span> np.<span style="color: #0080ff;">exp</span><span class="br0">&#40;</span><span style="color: #cc66cc;">-0.5</span>*<span class="br0">&#40;</span><span class="br0">&#40;</span>xdata-posit<span class="br0">&#41;</span>/larg<span class="br0">&#41;</span>**<span style="color: #cc66cc;">2</span><span class="br0">&#41;</span>
def gaus1<span class="br0">&#40;</span>xdata<span class="br0">&#41;</span> : <span style="color: #0000ff;">return</span> gaus_<span class="br0">&#40;</span>xdata, <span style="color: #cc66cc;">2.5</span>, <span style="color: #cc66cc;">0.3</span><span class="br0">&#41;</span>
def gaus2<span class="br0">&#40;</span>xdata<span class="br0">&#41;</span> : <span style="color: #0000ff;">return</span> gaus_<span class="br0">&#40;</span>xdata, <span style="color: #cc66cc;">4.5</span>, <span style="color: #cc66cc;">0.4</span><span class="br0">&#41;</span>
def gaus3<span class="br0">&#40;</span>xdata<span class="br0">&#41;</span> : <span style="color: #0000ff;">return</span> gaus_<span class="br0">&#40;</span>xdata, <span style="color: #cc66cc;">6.0</span>, <span style="color: #cc66cc;">0.4</span><span class="br0">&#41;</span>
def gaus4<span class="br0">&#40;</span>xdata<span class="br0">&#41;</span> : <span style="color: #0000ff;">return</span> gaus_<span class="br0">&#40;</span>xdata, <span style="color: #cc66cc;">8.0</span>, <span style="color: #cc66cc;">0.3</span><span class="br0">&#41;</span>
&nbsp;
np.random.seed<span class="br0">&#40;</span><span style="color: #cc66cc;">145320</span><span class="br0">&#41;</span> # reproductibilit&eacute; du hasard
xDonn&eacute;es = np.linspace<span class="br0">&#40;</span><span style="color: #cc66cc;">0.5</span>,<span style="color: #cc66cc;">10.</span>,<span style="color: #cc66cc;">100</span><span class="br0">&#41;</span>
yDonn&eacute;es = <span style="color: #cc66cc;">1.2</span> * gaus1<span class="br0">&#40;</span>xDonn&eacute;es<span class="br0">&#41;</span> + <span style="color: #cc66cc;">3.2</span> * gaus2<span class="br0">&#40;</span>xDonn&eacute;es<span class="br0">&#41;</span>
yDonn&eacute;es += <span style="color: #cc66cc;">2.1</span> * gaus3<span class="br0">&#40;</span>xDonn&eacute;es<span class="br0">&#41;</span> + <span style="color: #cc66cc;">0.7</span> * gaus4<span class="br0">&#40;</span>xDonn&eacute;es<span class="br0">&#41;</span>
yDonn&eacute;es += <span style="color: #cc66cc;">0.2</span> * np.random.randn<span class="br0">&#40;</span>len<span class="br0">&#40;</span>xDonn&eacute;es<span class="br0">&#41;</span><span class="br0">&#41;</span>
&nbsp;
def spectreTh&eacute;oriq<span class="br0">&#40;</span>xObs, h1, h2, h3<span class="br0">&#41;</span> :
   <span style="color: #0000ff;">return</span> <span class="br0">&#40;</span> h1 * gaus1<span class="br0">&#40;</span>xObs<span class="br0">&#41;</span> + h2 * gaus2<span class="br0">&#40;</span>xObs<span class="br0">&#41;</span> + h3 * gaus3<span class="br0">&#40;</span>xObs<span class="br0">&#41;</span> <span class="br0">&#41;</span>
&nbsp;
hOpt, hCov = sop.curve_fit<span class="br0">&#40;</span>spectreTh&eacute;oriq, xDonn&eacute;es, yDonn&eacute;es<span class="br0">&#41;</span>
<span style="color: #0080ff;">print</span><span class="br0">&#40;</span><span style="color: #FF0000;">&quot;Hauteurs optimis&eacute;es =&quot;</span>, hOpt<span class="br0">&#41;</span>
yAjust&eacute;s = spectreTh&eacute;oriq<span class="br0">&#40;</span>xDonn&eacute;es, *hOpt<span class="br0">&#41;</span>
&nbsp;
plt.plot<span class="br0">&#40;</span>xDonn&eacute;es, yDonn&eacute;es, <span style="color: #FF0000;">&quot;bo-&quot;</span><span class="br0">&#41;</span>
plt.plot<span class="br0">&#40;</span>xDonn&eacute;es, yAjust&eacute;s, <span style="color: #FF0000;">&quot;r-&quot;</span><span class="br0">&#41;</span>
plt.show<span class="br0">&#40;</span><span class="br0">&#41;</span>
##</pre></td></tr></table></code><hr />
</div>Comment faire pour travailler avec un &quot;def spectreThéoriq(xObs, hautS) :&quot; où l vecteur hautS contient les (ici 3) paramètres ? Sur la base de l'utilisation des &quot;arguments étoilés&quot;, j'ai essayé ceci :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br /></div></td><td valign="top"><pre style="margin: 0">def spectreTh&eacute;oriq<span class="br0">&#40;</span>xObs, *hautS<span class="br0">&#41;</span> :
   hautS = hautS<span class="br0">&#91;</span><span style="color: #cc66cc;">0</span><span class="br0">&#93;</span>
   nParm = len<span class="br0">&#40;</span>hautS<span class="br0">&#41;</span>
  ...</pre></td></tr></table></code><hr />
</div>mais curve_fit me renvoie cette erreur :<br />
   ValueError: Unable to determine number of fit parameters.<br />
<br />
Merci par avance de vos suggestions. -- ÉLw.py</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f60/general-developpement/algorithme-mathematiques/algorithmes-structures-donnees/">Algorithmes et structures de données</category>
			<dc:creator>ELw.py</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2177969/general-developpement/algorithme-mathematiques/algorithmes-structures-donnees/python-ajuster-courbe-scipy-optimize-curve_fit/</guid>
		</item>
		<item>
			<title>langage avec accolades et étoile</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2177871&amp;goto=newpost</link>
			<pubDate>Thu, 03 Jul 2025 10:40:26 GMT</pubDate>
			<description><![CDATA[Bonjour, 
 
quelqu'un sait-il...]]></description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
quelqu'un sait-il ce que signifie :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">Langage L1 = <span class="br0">&#123;</span>a&lowast; b<span class="br0">&#125;</span></code><hr />
</div></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f60/general-developpement/algorithme-mathematiques/algorithmes-structures-donnees/">Algorithmes et structures de données</category>
			<dc:creator>emmesse</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2177871/general-developpement/algorithme-mathematiques/algorithmes-structures-donnees/langage-accolades-etoile/</guid>
		</item>
	</channel>
</rss>
