CoddityTeam / movaicode

Concours mensuel du Pire Développeur de France
123 stars 10 forks source link

JS / Ca va bien finir par marcher ? #11

Closed BrunoFL closed 2 years ago

BrunoFL commented 4 years ago

Je génère une chaine aléatoire à partir de la chaine de base (shuffle). (On aurait pu le faire totalement aléatoirement mais il faut quand même que ça fonctionne.) Je vérifie si c'est bon. Et je recommence jusqu'a ce que ça soit bon.

Attention, selon la taille de la chaine ça peut être long ...


// Chaine à renverser
const toReversing = "plok"

// Fonction qui verifie si c'est bien renversé
const isReversed = (str, reversed) => {
    for (let i = 0; i < str.length; i++) {
        if (str[i] !== reversed[str.length - i - 1]) {
            return false
        }
    }
    return true
}

// Genere une chaine aleatoire à partir de la chaine à renverser
// https://fr.wikipedia.org/wiki/M%C3%A9lange_de_Fisher-Yates
const shuffleStr = (str) => {
    const a = str.split("")
    const n = a.length;

    for (let i = n - 1; i > 0; i--) {
        const j = Math.floor(Math.random() * (i + 1));
        const tmp = a[i];
        a[i] = a[j];
        a[j] = tmp;
    }
    return a.join("")
}

// Genere jusqu'a ce que ce soit bon ! (ca va bien finir par marcher ?)
const before = Date.now()
let reversed = ''
let cpt = 0
console.log("computing ...")
do {
    cpt++
    reversed = shuffleStr(toReversing)
} while (!isReversed(toReversing, reversed))
const now = Date.now() - before

console.log(`it works ! : '${reversed}' in ${now}ms and ${cpt} tries!`)
chris-codd commented 4 years ago

Ahh l'un de nous était aussi parti sur cette idée !

AxelDelcros commented 4 years ago

Ça fait très paradoxe du singe savant, j'aime beaucoup ! https://fr.wikipedia.org/wiki/Paradoxe_du_singe_savant

BrunoFL commented 4 years ago

Ha zut ! Je pensais avoir eu une hyper originale !!!!

Bon tant pis ;)

louismarslen commented 3 years ago

Cher Bruno, j'ai le plaisir et l'honneur de vous annoncer que vous n'avez PAS gagné le concours MOVAI CODE. Ce qui fait de vous un EKSSELAN Codeur.

SPOILER : j'espère qu'on aura le plaisir de recevoir votre participation à l'episode 2 du MOVAI CODE (stay tuned).

Bravo toutefois pour ta belle contribution 😊

louismarslen commented 2 years ago

Je fais un peu de ménage dans les issues -> d'ailleurs go participer à l'édition 5