Enigmes

Forum dédié aux énigmes et à toutes formes de jeux de logique.

Déconnexion

Tu n'es pas identifié sur Prise2tete : s'identifier.

accueil Accueil forum Forum
[+]

 #26 - 15-11-2013 17:32:03

gilles355
Professionnel de Prise2Tete
Enigmes résolues : 49
Messages : 416

promenons-npus dans le train

Je viens de relire ton énoncé et je n'avais pas vu que le voyageur changeait de wagon toutes les minutes, je pensais tous les jours.

En plus je comptais 20 min le temps minimum alors que c'était 19 minutes.

Donc le temps moyen serait donc de 104 minutes.

Si je continue jusqu'à plus de 1000 c'est à dire 1045 minutes , la somme des probas dépasse 1, je trouve 10,92823.

En faisant la moyenne je trouve dans ce cas 554 minutes ...

#0 Pub

 #27 - 15-11-2013 18:43:27

NickBern
Habitué de Prise2Tete
Enigmes résolues : 43
Messages : 49

promenons-nous dans le traib

C'est ma première résolution sur le fofo ! cool

Alors j'ai créé un programme avec :
- un tableau de 20 cases, valeurs de 0 à 1 (donc au départ un 1 et dix-neuf 0).
- une fonction qui prend (case i-1)/2 + (case i+1)/2 et la stocke dans (case i) (sauf les wagons extrêmes où il faut adapter un peu...).
                Donc cette fonction simule 1 minute de temps de jeu.
- dans le main : un compteur incrémenté à chaque tour (le chrono) ; et une variable qui, à chaque appel de la fonction, se voit incrémentée du produit "nombre de nouveaux passagers arrivés dans le wagon 20 à cette étape" par "moment où ils arrivent" (c'est-à-dire le chrono), cette variable nous donneras donc la moyenne recherchée !!

Y'a donc plus qu'à lancer en boucle infinie et à observer : Spoiler : [Afficher le message] on voit alors la moyenne grossir à chaque ligne, puis se stabiliser à 361.988 minutes, soit un peu plus de 6 heures !

(si c'est la bonne réponse je passerai évidemment le programme à qui veut, une fois l'énigme ouverte)

En tout cas merci pour cette devinette bien P2T smile

 #28 - 15-11-2013 18:53:41

nodgim
Elite de Prise2Tete
Enigmes résolues : 0
Messages : 2953

promenpns-nous dans le train

L'algorithme que j'ai construit repose sur un tableur de 20 colonnes , chacune d'elles représente 1 wagon.
La proba de se trouver dans un wagon W donné à la n ième minute est donnée par la formule: Pn(W)=(P(n-1)(W-1)+P(n-2)(W+1))/2.
Pour le wagon 1: Pn(1)=P(n-1)2/2
Pour le wagon 20: Pn(20)=P(n-1)19/2
Pour le wagon 2: Pn(2)=P(n-1)1+P(n-1)3/2.
Pour le wagon 19: Pn(19)=P(n-1)20+P(n-1)18/2.

Je cumule ensuite les Pn(20) avec la formule:
S(n+1)20=Sn20+(1-Sn20)*P(n+1)20.

C'est quand Sn atteint 0.5 que je dis que c'est le temps moyen pour arriver au wagon 20.

Mais bon, ce n'est peut être pas la bonne méthode...

 #29 - 15-11-2013 19:37:31

Papy04
Ricocheur en Chef
Enigmes résolues : 47
Messages : 1232

Promenoons-nous dans le train

Je n'ai jamais aimé les probabilités mais je vais tenter une réponse.
Le temps le plus court pour arriver au wagon n°20 est de 19 minutes. Si il alterne parfaitement les "pile" et les "face", il ne va pas plus loin que le wagon n°3 et met donc un temps infini. A la louche, donc la moyenne des parcours possibles serait de (19 + infini)/2 ce qui ne doit pas être loin de l'infini. J'espère qu'il n'est pas pressé big_smile
Mais bon, en général je me plante dans les grandes largeurs sur ce genre de problème alors j'attends la solution avec curiosité smile


Nous les souiris nous avons un défaut, nous sommes prétentieux. Mais nous nous sommes corrigés. Maintenant nous sommes parfaits

 #30 - 15-11-2013 23:23:02

Franky1103
Elite de Prise2Tete
Enigmes résolues : 49
Messages : 2714
Lieu: Luxembourg

Promennons-nous dans le train

Je tente une démonstration plus rigoureuse, en laissant tomber cette histoire de
mouvement brownien, revu par Einstein, juste mais lourd à digérer.
J’appelle t(i) le temps mis en moyenne pour atteindre le wagon numéro i.
On a trivialement: t(1) = 0 et t(2) = 1. Calculons maintenant t(n+1), en fonction
des termes précédents.
Je suis dans le n-ième wagon; pour passer dans le wagon suivant (ou précédent),
je mettrai une durée de 1, multipliée par la probabilité de 0,5; il me reste à ajouter
la durée pour passer du wagon précédent au suivant qui est de: t(n+1) - t(n-1), à
multiplier par 0,5 (comme je suis remonté de 1, il faut redescendre de 2).
J’ai donc: t(n+1) = t(n) + 0,5.1 + 0,5.1 + 0,5.[t(n+1) - t(n-1)],
ce qui donne: t(n+1) = 2 + 2.t(n) - t(n-1)
Cette suite introduite dans un tableau Excel donne la solution: t(n)=(n-1)², et on
vérifie en effet aisément que: 2 + 2.(n-1)² - (n-2)² = n²
Donc: t(20) = 19² = 361 mn = 6 h 01 mn. Et voilà.

 #31 - 16-11-2013 00:26:38

fix33
Elite de Prise2Tete
Enigmes résolues : 48
Messages : 1198
Lieu: Devant un clavier depuis 1748

promenons-nous dans le teain

6h01min ?


Je ne vien sur se site que pour faire croir que je suis treise intélligens.

 #32 - 16-11-2013 00:34:00

titoufred
Elite de Prise2Tete
Enigmes résolues : 20
Messages : 1746

promenons-nois dans le train

@gilles : je pense que si la somme des probas dépasse 10, il y a un problème quelque part. Tu n'es pourtant plus très loin avec ta 2ème estimation.

@nickBern : Très bonne estimation, bravo ! Tu peux poster ton programme ?

@nodgim : pas d'accord avec quelques formules. Par exemple, de 20 on ne retourne pas en 19. De plus tu calcules le temps médian de la promenade et non le temps moyen.

@papy : tu prends 2 séries possibles de PILE ou FACE parmi tellement d'autres... Pourquoi celles-là ? La moyenne se fait sur toutes les séries possibles.

@Franky : Très bonne démonstration. Tu es le seul pour l'instant à en avoir exposé une valable. Un grand bravo !

@masab : Quel est ton raisonnement ?

@fix : Oui, bravo, c'est le bon résultat. Tu partages ton raisonnement ?

 #33 - 16-11-2013 11:09:09

pseudo12345
Visiteur

Prommenons-nous dans le train

environ 6 heures :

(les probas, c'est trop compliqué wink )

var wagon = 1;
var nbTour = 0;
var moy = 0.0;
for(var i = 0; i < 100000; i++){
  nbTour = 0;
  wagon = 1;
  while (wagon != 20){
    if (wagon == 1) {
      wagon ++;
    }
    else if (Math.random() >0.5){
      wagon++;
    } else {
      wagon --;
    }
    nbTour ++;
  }
  moy += nbTour;
}
document.getElementById("demo").innerHTML=moy/i;

 #34 - 16-11-2013 11:57:28

titoufred
Elite de Prise2Tete
Enigmes résolues : 20
Messages : 1746

promenons-nius dans le train

Oui, c'est à peu près ça, bravo. C'est quoi comme langage ? Comment on peut le faire tourner ?

 #35 - 16-11-2013 12:20:04

pseudo12345
Visiteur

peomenons-nous dans le train

C'est du JavaScript (lent, mais pas besoin de compilo, 1 simple navigateur suffit smile ) - au fait, la question ne s'affiche pas..

à enregistrer dans un .html
<!DOCTYPE html>
<html>
<body>

<p id="demo">Click the button to display a the result.</p>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction()
{

var wagon = 1;
var nbTour = 0;
var moy = 0.0;
for(var i = 0; i < 100000; i++){
  nbTour = 0;
  wagon = 1;
  while (wagon != 20){
    if (wagon == 1) {
      wagon ++;
    }
    else if (Math.random() >0.5){
      wagon++;
    } else {
      wagon --;
    }
    nbTour ++;
  }
  moy += nbTour;
}
document.getElementById("demo").innerHTML=moy/i;
}
</script>

</body>
</html>

 #36 - 16-11-2013 12:37:12

NickBern
Habitué de Prise2Tete
Enigmes résolues : 43
Messages : 49

Promenonsn-ous dans le train

Voilà le code (c) :

#include <stdio.h>
#include <string.h>

// la fonction, simule une minute  :
void avance (float train[20])
{
    int i;
    float data[20];

    // copie en temp :
    for (i=0; i<20; i++)
    {
        data[i] = train[i];
    }

    // modifie tous les wagons :
    train[0] = (data[1] /2);
    train[1] = data[0] + (data[2] /2);
    for (i=2; i<=17 ; i++)
    {
        train[i] = (data[i-1] /2) + (data[i+1] /2);
    }
    train[18] = (data[17] /2);
    train[19] += (data[18] /2);

    // affichage :
    printf("     dans wagon 20 : %.f", train[19]);
}

int main()
{
    int time = 0;
    float train[20] = {1}, previous, temps_moy = 0;

    // avance rapide (ctrl-C pour stopper) :
    do
    {
        // incrémente chrono :
        time ++;
        printf("\n [%d min]", time);

        // proba d'être arrivé :
        temps_moy += time * (train[19] - previous);
        // stocke valeur pour utilisation au prochain tour de boucle :
        previous = train[19];

        avance(train);
        printf("    temps_moy : %.3f", temps_moy);
    } while (1);   // ou "while(train[19]< ... )" en mettant la précision voulue

    return 0;
}

 #37 - 16-11-2013 13:01:34

titoufred
Elite de Prise2Tete
Enigmes résolues : 20
Messages : 1746

promenons-nouq dans le train

Ok NickBern merci.

Il y a une petite erreur dans ton programme, tu dois incrémenter time en toute fin de boucle while par exemple.

 #38 - 16-11-2013 14:21:30

Promath-
Elite de Prise2Tete
Enigmes résolues : 18
Messages : 1416
Lieu: Au fond de l'univers

Promennons-nous dans le train

Longtemps.

Non sérieux ça doit faire du 2^18 minutes??? Je ne sais pas, à la louche je dirais ça.


Un promath- actif dans un forum actif

 #39 - 16-11-2013 14:57:29

w9Lyl6n
Professionnel de Prise2Tete
Enigmes résolues : 26
Messages : 220

Promenons-nos dans le train

Sans changer le temps moyen on peut imaginer un problème similaire où le train comporte 39 wagons et on par du 20eme pour atteindre l'une où l'autre des extrémités.

Le nombre de déplacement vers l'avant suit une loi binomiale en fonction du nombre de déplacement, donc l'écart type est [latex]\sqrt{n}[/latex] où n est le nombre de déplacement.

On peut conjecturer rapidement qu'il faut 19²=361 minutes en moyenne pour atteindre un bout du train.

Comme je ne suis pas assez fort en proba pour savoir si éloignement moyen à n donné et n moyen pour atteindre un éloignement donné sont identiques, j'ai posé proprement le calcul:
Si on pose [latex]t_k[/latex] le temps moyen depuis le wagon k pour atteindre le wagon 20:
[TeX]t_1=1+t_2[/TeX]
[TeX]t_k=\frac{1}{2}t_{k+1}+\frac{1}{2}t_{k-1}+1[/TeX]
[TeX]t_{20}=0[/TeX]
En résolvant ce système je retombe sur ma conjecture.
Donc sauf erreur de ma part il faut en moyenne 6 heure et une minute

 #40 - 16-11-2013 15:09:24

titoufred
Elite de Prise2Tete
Enigmes résolues : 20
Messages : 1746

Promenos-nous dans le train

Oui bravo Mathieu ! J'ai raisonné comme toi avec les [latex]t_k[/latex]

 #41 - 16-11-2013 15:24:01

titoufred
Elite de Prise2Tete
Enigmes résolues : 20
Messages : 1746

Promenons-nos dans le train

MthS-MlndN a écrit:

Si j'ai une chance sur deux de réussir quelque chose à chaque tentative, j'y arriverai en moyenne la deuxième fois.

Oui, très bon début ! C'est après que ça ne va pas.
Admettons que tu veuilles aller en 4. Tu dois aller en 3 et te foirer mais après tu ne repars pas de 1, tu te trouves déjà en 2...

@kossi_tg : tu peux justifier proprement ton hypothèse de mouvement oscillatoire avec la façon de voir de Mathias.

PS : Vos différents points de vue à tous sont vraiment très enrichissants pour moi, merci.

 #42 - 16-11-2013 15:37:19

enigmatus
Professionnel de Prise2Tete
Enigmes résolues : 0
Messages : 400

Promenons-nous dan sle train

Je dirais 361 minutes, soit 6 heures et 1 minute (19**2)

 #43 - 16-11-2013 15:46:31

fix33
Elite de Prise2Tete
Enigmes résolues : 48
Messages : 1198
Lieu: Devant un clavier depuis 1748

promenins-nous dans le train

Pour atteindre le wagon n :
- on a une proba de [latex]\frac{1}{2^{n-2}}\[/latex] pour l'atteindre en (n-1) minutes.
- on a une proba de [latex]\frac{1}{2^{n}}\ + \frac{1}{2^{n-1}}\[/latex], soit  [latex]\frac{3}{2^{n}}\[/latex] pour l'atteindre en (n+1) minutes.
- on a une proba de [latex]\frac{1}{2^{n+2}}\ + \frac{n-3}{2^{n+1}} + \frac{1}{2^{n}}\[/latex], soit  [latex]\frac{2n-1}{2^{n+2}}\[/latex] pour l'atteindre en (n+3) minutes.

Je trouve au final pour w wagons (mais j'ai de sérieux doutes, sans pouvoir confirmer par Wolfram ou autre) :
[latex]\sum\nolimits_{n=0}^{\infty}(\frac{(2n+w-2)*\sum\nolimits_{k=0}^{\infty}(2^k*C_{w-3}^k)}{2^{2n+w+1}})\[/latex] qui vaudrait [latex](w-1)^2[/latex] ?!

Donc pour 20 wagons : 361 minutes, 6h01min.


Je ne vien sur se site que pour faire croir que je suis treise intélligens.

 #44 - 16-11-2013 16:56:59

elpafio
Expert de Prise2Tete
Enigmes résolues : 42
Messages : 828

promenonq-nous dans le train

Et, en moyenne, parce que 6 heures c'est long, il faut aussi compter 5 à 10 minutes de plus lors du passage dans la voiture-bar wink


Rendez les choses aussi simples que possible, mais pas plus simples. Albert Einstein

 #45 - 16-11-2013 17:14:16

titoufred
Elite de Prise2Tete
Enigmes résolues : 20
Messages : 1746

Promenons-nous dan le train

Il fallait donc trouver 6 heures et 1 minute.

Bravo à tous ceux qui ont trouvé la solution.

Vous pouvez à présent admirer les différentes démonstrations proposées par Franky et w9Lyl6n. Il y a également une troisième façon de voir très intéressante initiée par Mathias, qu'il reste à compléter.

 #46 - 16-11-2013 17:15:06

titoufred
Elite de Prise2Tete
Enigmes résolues : 20
Messages : 1746

promenons-nous dans lr train

@fix : tes formules ne sont pas bonnes.

 #47 - 16-11-2013 17:16:33

NickBern
Habitué de Prise2Tete
Enigmes résolues : 43
Messages : 49

Promenons-nous dans e train

titoufred a écrit:

Il y a une petite erreur dans ton programme, tu dois incrémenter time en toute fin de boucle while par exemple.

C'pô une erreur, mais ça m'a paru bizarre en l'écrivant aussi ^^

Si tu le mets à la fin ça affichera "à t=0, [0-100-0-0-0-...],et tout est décalé.

En fait avec du recul je me dis qu'il aurait été plus propre d'initialiser à "time=1", et rajouter une ligne "time++;" à la fin de la fonction (je suis habitué aux exos de physique qui plantent le décor "à t=0")    Ça change rien, on est sauvés wink

En attendant j'adore lire les réponses des autres, ceux qui résolvent ça avec un calcul simple en apparence, mais totalement imparable !   Bravo !

 #48 - 16-11-2013 17:21:00

titoufred
Elite de Prise2Tete
Enigmes résolues : 20
Messages : 1746

prpmenons-nous dans le train

Non vraiment, il faut laisser time=0 et incrémenter time en fin de boucle. En tout cas après ton incrémentation de temps_moy. Essaye avec un train à 1 ou 2 wagons, tu vas comprendre. Tes moyennes sont décalées de 1. Bouge ton printf aussi si tu veux.

 #49 - 16-11-2013 17:35:09

gwen27
Elite de Prise2Tete
Enigmes résolues : 49
Messages : 5,469E+3

Promenons-nous dans l train

D'un autre côté, sans formule ni tableur, je pense avoir eu presque bon.

Il suffisait bien d'une simple multiplication.
Je ne sais pas où je me suis planté.
18x19  non, mais 19x19.

Un ajustement est peut-être à faire mais je crois qu'un raisonnement simple permettait d'en venir à bout très vite. (j'ai du mal placer le +1)

On a 19 wagons à grimper.
Depuis chaque wagon on a en moyenne un aller retour vers le bas et une montée.
La moyenne d'un aller-retour est 18 . (de 2 à 34)
19x18=342

D'où vient le 19 ?

PS mes tests avec une variable aléatoire -1 ou 1 sur 2000 cas avec excel donnent 342,9... Je pense que j'ai du louper une incrémentation dans la formulation.

Mais j'aimerais bien comprendre où je me trompe, merci smile

 #50 - 16-11-2013 17:52:00

NickBern
Habitué de Prise2Tete
Enigmes résolues : 43
Messages : 49

rPomenons-nous dans le train

Au temps pour moi, en effet dans le calcul de temps_moy je multipliais le nombre avec le temps précédant sad

Au premier lancement, on arrivait avec time=0, [100-0---------0]
puis time++                                  => time=1, [100-0--------0]
et avec ça temps_moy est effectivement décalé...

Solution : mettre "avance(train);" comme première instruction du do-while.

Merciii


EDIT : ça donne 360.988 minutes on est bon

Réponse rapide

Rédige ton message
| | | | Upload | Aide
:) :| :( :D :o ;) :/ :P :lol: :mad: :rolleyes: :cool:
Sécurité

Répondez (numériquement) à la petite énigme suivante : 

Un berger a 20 moutons, ils meurent tous sauf 12, combien en reste-t-il ?

Sujets similaires

Sujet Date Forum
P2T
20-11-2013 Enigmes Mathématiques
25-03-2011 Enigmes Mathématiques
P2T
A nous la lune ! par Vasimolo
19-09-2009 Enigmes Mathématiques
P2T
09-01-2011 Enigmes Mathématiques
P2T
Le carré caché par unecoudée
16-12-2014 Enigmes Mathématiques
P2T
Calcul magique 2 ;D par willi67
04-02-2010 Enigmes Mathématiques
P2T
Hypothèse de Riemann par Cosmopolitan
18-10-2010 Enigmes Mathématiques
25-03-2012 Enigmes Mathématiques
P2T
Gâteau 107 par Vasimolo
03-10-2015 Enigmes Mathématiques

Mots clés des moteurs de recherche

Pied de page des forums

P2T basé sur PunBB
Screenshots par Robothumb

© Copyright 2002–2005 Rickard Andersson

Prise2Tete Forum Statistiques Liste des membres Hall of Fame Contact
© Prise2tete - Site d'énigmes et de réflexion.
Un jeu où seules la réflexion, la logique et la déduction permettent de trouver la solution.

Flux RSS de Prise2Tete Forum Jeux & Prise2Tete Test & Prise2Tete Partenariat et Publicité sur Prise2Tete