PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.c++ > Difference entre C et C++ à l'exécution
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
Difference entre C et C++ à l'exécution

Réponse
 
LinkBack Outils de la discussion
Vieux 11/04/2008, 18h21   #9
David Fleury
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Difference entre C et C++ à l'exécution

Fabien LE LEZ a écrit :
> On Fri, 11 Apr 2008 10:41:55 +0200, pjb@informatimago.com (Pascal J.
> Bourguignon):
>
>> Ce qui donne, en 32-bit:
>> echo 1 10000000|./syracuse-c
>> Arithemtic overflow on 113383

>
> Arf, effectivement, je n'y avais même pas pensé.
> Par contre, je ne comprends pas pourquoi le programme plante. n*3+1
> devrait donner une valeur (éventuellement fausse au sens arithmétique)
> pour tout n, sans plantage, non ?
>


J'ai pas précisé ce point...

"You can assume that no operation overflows a 32-bit integer."

les nombres en entrée sont inclut entre 1 et 1.000.000
(ce qui n'empêche pas le dépassement de toute façon)
  Réponse avec citation
Vieux 11/04/2008, 18h24   #10
David Fleury
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Difference entre C et C++ à l'exécution

Marc Espie a écrit :
> In article <47ff05e8$0$746$426a74cc@news.free.fr>,
>
> 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.


En fait, ce problème est là plutôt pour se familiariser avec l'interface
de soumission avec un problème simple.
Une sorte de tutorial, le résoudre n'est pas le but ici.
  Réponse avec citation
Vieux 11/04/2008, 18h28   #11
David Fleury
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Difference entre C et C++ à l'exécution

Pascal J. Bourguignon a écrit :
> Fabien LE LEZ <gramster@gramster.com> writes:
>
>> On Fri, 11 Apr 2008 10:41:55 +0200, pjb@informatimago.com (Pascal J.
>> Bourguignon):
>>
>>> Ce qui donne, en 32-bit:
>>> echo 1 10000000|./syracuse-c
>>> Arithemtic overflow on 113383

>> Arf, effectivement, je n'y avais même pas pensé.
>> Par contre, je ne comprends pas pourquoi le programme plante. n*3+1
>> devrait donner une valeur (éventuellement fausse au sens arithmétique)
>> pour tout n, sans plantage, non ?

>
> Non, les débordement peuvent produire n'importe quel résultat, comme
> le déclanchement de la quatrième guerre mondiale, ou la sortie de
> démons nasaux. En clair, chaque compilateur fait ce qu'il veut.
>


J'étais étonné de la différence pour le même oss, le même code,
et un compilo différent.

Ce qui m'embête toujours un peu , c'est qu'en utilisant le code
vérifiant la dépassement (un remplaçant exit(1) par exit(0)), je devrais
juste avoir une "mauvaise réponse", mais j'obtiens toujours une erreur.

  Réponse avec citation
Vieux 11/04/2008, 20h02   #12
Pascal Bourguignon
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Difference entre C et C++ à l'exécution

David Fleury <dfleury2@libertysurf.fr> writes:

> Pascal J. Bourguignon a écrit :
>> Fabien LE LEZ <gramster@gramster.com> writes:
>>
>>> On Fri, 11 Apr 2008 10:41:55 +0200, pjb@informatimago.com (Pascal J.
>>> Bourguignon):
>>>
>>>> Ce qui donne, en 32-bit:
>>>> echo 1 10000000|./syracuse-c
>>>> Arithemtic overflow on 113383
>>> Arf, effectivement, je n'y avais même pas pensé.
>>> Par contre, je ne comprends pas pourquoi le programme plante. n*3+1
>>> devrait donner une valeur (éventuellement fausse au sens arithmétique)
>>> pour tout n, sans plantage, non ?

>> Non, les débordement peuvent produire n'importe quel résultat, comme
>> le déclanchement de la quatrième guerre mondiale, ou la sortie de
>> démons nasaux. En clair, chaque compilateur fait ce qu'il veut.
>>

>
> J'étais étonné de la différence pour le même oss, le même code,
> et un compilo différent.
>
> Ce qui m'embête toujours un peu , c'est qu'en utilisant le code
> vérifiant la dépassement (un remplaçant exit(1) par exit(0)), je
> devrais
> juste avoir une "mauvaise réponse", mais j'obtiens toujours une erreur.


Alors là, je ne sais pas. Essaye d'exécuter le programme sous gdb et
voir où exactement se situe l'erreur.

--
__Pascal Bourguignon__ http://www.informatimago.com/

WARNING: This product attracts every other piece of matter in the
universe, including the products of other manufacturers, with a
force proportional to the product of the masses and inversely
proportional to the distance between them.
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 22h23.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,09954 seconds with 12 queries