Aller au contenu
  • 0
Zeus

Objectif 100 !

Énigmes

13 réponses à cette énigme

Messages recommandés

  • 0

est-ce qu'il faut passer par toutes les cases ? ou est-ce que c'est le chemin le plus court le meilleur ?

Modifié par godzi

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

C'est pas simple, j'ai le cerveau qui refuse de calculer avec ces "opérateurs" :fou2:

Mais très intéressant :)

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

On a le droit de passer plusieurs fois sur le même chiffre ? 

 

post-402-0-36190600-1435063438.jpg

 

3 + 60 + 47 - 6 - 3 - 8 - 4 + 8 + 3 = 100

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Mince, trop tard pour éditer...

 

 

3+60-53+90=100

 

J'ai fait un "petit" code (entre guillemets parce que j'ai passé 10 plombes à l'écrire >_<) de marche aléatoire pour explorer le truc, en me limitant à 20 coups, et pour l'instant, je ne suis pas passé en dessous de 7 coups.

 

En moyenne, 0.25% des tirs de moins de 20 coups donnent 100.

 

Modifié par Bonzaï masqué

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Désolé de ne pas l'avoir précisé avant: on ne peut pas passer deux fois par la même case...

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Aaaaaah...

 

Dans ce cas j'en ai un en 8 coups.

 

cglWJMY.png

35+06+74-08-7 = 100

 

Et, pour l'instant c'est le plus court que j'ai trouvé.

Modifié par Bonzaï masqué

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Si ça intéresse quelqu'un, je mets mon bout de code Matlab (J'aurai aimé le faire en Python, mais j'avais Matlab ouvert)

Tableau = [1,6,3,9,2;7,2,5,0,4;4,8,3,6,7;1,5,9,0,4;2,6,7,8,3] %% Définition du tableau


%% Initialisation
Tentatives = 0; % Nombre de tentatives 
Val = 0; %Valeur de la somme actuelle
Indice = 1; % Pour le stockage des suites qui donnent 100
Suites = {}; % 

% On fait 5000 tirages
while Tentatives < 5000 
    NoWalk = zeros(5,5); % Initalisation du tableau des zones interdites
    NoWalk(3,3)=1; %Le carré central est toujours interdit
    % Encore plus d'initalisations
    Lig = 3;Col = 3;
    NumIter = 1;
    Suite = '';
    Val = 0;
    Storage = 3;
    Flag = 1; %Flag de direction droite/gauche pour savoir s'il faut additionner ou soustraire
    
    %Boucle principale 
    while Val ~= 100 && NumIter<25 % On s'arrête si on a atteint 100 ou au bout de 25 tirages (on a tout visité)

        Jet = rand; % Pseudo-aléatoire, distribution normale entre 0 et 1
        Compar = sum(Jet<[0.25,0.5,0.75,1]); % Pour switcher (si Compar = 1, 0.75<=Jet<1, si Compar = 2, 0.50<=Jet<1)
        switch Compar % C'est pas très bien rangé mais les 4 possibilités sont équiprobables, donc tant pis
            %Principe : La somme totale est donnée par la variable "Var",
            %initialement nulle.
            %Si on se déplace en N/S, on stocke dans une variable "Storage"
            %ce qu'il faudra sommer ou soustraire ensuite.
            %On réinitalise cette variable au point courant quand on se déplace en E/W, on
            %réinitialise le flag à 1 ou -1 en fonction qu'on est allé à
            %l'est ou à l'ouest et on somme "Var" à l'ancien "Storage"
            case 1
                if Col~=5 % Attention aux bords du tableau
                    if ~NoWalk(Lig,Col+1) % Attention aux point déjà visités
                        NoWalk(Lig,Col+1)=1; % C'est interdit maintenant
                        Suite = [Suite  'E']; % "Suite" contient la chaîne de caractères des directions empruntées
                        Val = Val+Flag*Storage;
                        Flag = 1;
                        Col = Col+1;
                        Storage = Tableau(Lig,Col);            
                    end
                end
            case 2
                if Lig~=1 
                    if ~NoWalk(Lig-1,Col)
                        NoWalk(Lig-1,Col)=1;
                        Suite = [Suite  'N'];
                        Lig = Lig-1;
                        Storage = Storage * 10 + Tableau(Lig,Col);
                    end
                end

            case 3
                if Lig~=5 
                    if ~NoWalk(Lig+1,Col)
                        NoWalk(Lig+1,Col)=1;
                        Suite = [Suite  'S'];
                        Lig = Lig+1;
                        Storage = Storage*10 + Tableau(Lig,Col);
                    end
                end
            case 4
                if Col~=1
                    if ~NoWalk(Lig,Col-1)
                        NoWalk(Lig,Col-1)=1;
                        Suite = [Suite  'W'];
                        Col = Col-1;
                        Val = Val + Flag* Storage;
                        Flag = -1;
                        Storage = Tableau(Lig,Col);
                    end
                end
        end
        NumIter= NumIter+1; % On n'oublie pas, sinon on tourne...
    end
    %Fin de la boucle principale
    
    %%On check si on est arrivé à 100 ou non 
    if Val == 100
        Suites{Indice} = Suite; % Si on est arrivé à 100, on stocke la chaîne de caractère qui fonctionne 
        Indice = Indice+1; % et on incrémente l'indice
    end
    
    %Et on retente notre chance
    Tentatives = Tentatives +1;
end


%Visualisation
L = 25; %Max de pas
for i = 1:length(Suites)
    if length(Suites{i})<L
        L = length(Suites{i}); % C'est moche mais ça marche
    end
end

L % Taille minimale. Mais on a forcément fait un pas de trop. (Pour la dernière somme)

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Je ne sais pas si c'est le plus court chemin, mais c'en est un ^^"

 

3-8-47+26+35+9+247-60-97-6-2 = 100

 

post-402-0-66986000-1435148890.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×
×
  • Créer...

Information importante

En utilisant ce site, vous acceptez notre Politique de confidentialité et nos Conditions d’utilisation
Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.