Re: Difference entre C et C++ à l'exécution
In article <47ff05e8$0$746$426a74cc@news.free.fr>,
David Fleury <dfleury2@libertysurf.fr> wrote:
>Fabien LE LEZ a écrit :
>> On Thu, 10 Apr 2008 22:55:08 +0200, David Fleury
>> <dfleury2@libertysurf.fr>:
>>
>>> Si je le compile en C ou en C++, je n'obtiens pas le même
>>> résultat. En C++ fonctionne comme attendu, en C, j'ai un seg fault
>>> (runtime error)
>>
>> Je n'arrive pas à trouver de problème dans le code. Quel compilateur
>> utilises-tu, et quelles options de compilation ?
>>
>
>gcc 4.1.2 -lm -lcrypt -O2 -pipe -ansi
>et
>g+++ -lm -lcrypt -O2 -pipe
>
>en fait, ce code est censé répondre à un des problèmes d'un site
>de problème d'algo. Pour le moment, je ne leur ai pas demandé
>de regarder de leur côté. Je voulais d'abord un avis extérieur
>n'ayant rien trouvé à redire de mon côté sur un programme aussi simple.
Juste pour info, ca n'est pas un vrai `probleme d'algo'. La recurrence
indiquee s'appelle la `conjecture de Syracuse', et personne n'a jamais
reussi a la prouver.
La conjecture pose la recurrence suivante partant de u_0:
si u_n est pair, u_n+1 = u_n / 2
si u_n est impair, u_n+1 = u_n * 3 + 1
et postule que la suite u_n finit toujours par rejoindre
4 2 1 4 2 1 4 2 1 ...
ca a ete verifie experimentalement jusqu'a des valeurs tres importantes,
mais aucune preuve n'en est jamais sorti.
Classer les entiers selon le nombre d'etapes necessaires pour rejoindre
4 2 1 ... peut sembler une bonne premiere etape. A ma connaissance, on n'a
vraiment tres peu de renseignements la-dessus.
|