[C#] Equation avec deux variables aléatoires

Olympiades mathématiques, énigmes et défis
Scar
Messages: 4
Enregistré le: 22 Juin 2018, 01:01

[C#] Equation avec deux variables aléatoires

par Scar » 22 Juin 2018, 01:34

Bonjour, ceci est ma première question sur ce forum.

Contexte
Je suis en train de créer un logiciel de cryptage de texte. Le texte est cryptée de manière aléatoire, avec une séquence de nombres, de lettres ou de caractères spéciaux assigné a chaque caractère du texte.
L'utilisateur à la possibilité de choisir la longueur de ces séquence, de manière fixe ou aléatoire entre deux variables.

Variables
Soit x la longueur fixe d'une séquence définie sur [1;10]
Soit y la longueur minimale d'une séquence définie sur [1;b]
Soit z la longueur maximale d'une d'une séquence définie sur [a;10]

Problème
Avec une longueur fixe, je peux aisément savoir si il y a assez de possibilités de séquences pour crypter l'ensemble du texte :
C#
Code: Tout sélectionner
float ratio = (float)textToEncode.Length / (float)chars.Length;
if (ratio / x > 1)
{
    return;
}

Mais avec une valeur aléatoire je ne peux pas faire ce calcul...

Résumé
En gros je recherche un moyen de savoir si il est possible de crypter le texte avec les paramètres sélectionnés par l'utilisateur.

Si je n'ai pas été assez claire, dîtes-le moi et si vous avez des idées, je serai heureux de les voir !
Merci d'avoir lu !


- Scar



kyrie243
Membre Naturel
Messages: 13
Enregistré le: 28 Mai 2018, 20:56

Re: [C#] Equation avec deux variables aléatoires

par kyrie243 » 22 Juin 2018, 05:17

Qu'est-ce que a et b précisément?
Car si je comprend bien les variables x,y et z c'est des possibilités de ton programme?
C'est à dire tu veux faire un programme qui va crypter avec des séquences de même taille (x) ou un qui va crypter avec des séquences de tailles variables définis aléatoirement?

Et de ce que je comprend de ton code "assez de possibilités" veut dire qu'il y a plus d'une possibilité?
Si oui dans le cas fixe tu peux faire une fonction qui compte le nombre de caractères différents et le compare avec:
-Si c'est crypté par des chiffres 10^(taille séquence)
-Si c'est par des lettres c'est inutile car il n'y aura jamais plus de lettre qu'il y a de lettre

Dans le cas où tu comptes faire avec la longueur minimal , y, d'une séquence tu es obligé de prendre b par sécurité car ce sera aléatoire (si j'ai bien compris) puis ce sera pareil qu'avec x pour la comparaison.

Dans le cas où tu comptes faire avec la longueur maximal, z, d'une séquence tu prend cette fois la valeur z pour faire le test.
J'espère avoir bien compris ton problème et t'avoir apporté une solution.

Scar
Messages: 4
Enregistré le: 22 Juin 2018, 01:01

Re: [C#] Equation avec deux variables aléatoires

par Scar » 22 Juin 2018, 18:30

Salut,
Je me suis trompé en écrivant a et b au lieu de y et z ^^
Et pour ce qui est du reste, voici un exemples :

Longueur fixe
On entre "abcdefghijklmopqrstuvwxyz" dans le logiciel, l'utilisateur choisi de crypter cette chaîne avec seulement des paquets de 1 nombre (la longueur choisie)
Sachant qu'il y a plus de caractères dans la chaîne entrée que dans la chaîne de cryptage (023456789), il sera impossible de crypter la chaîne entrée.

Longueur aléatoire entre y et z
L'utilisateur rentre entre "abcdefghijklmopqrstuvwxyz" dans le logiciel, cette fois ce dernier choisi de crypter cette chaîne avec des paquets de nombre d'une longueur entre 1 et 2 (longueur minimale et maximale choisies)
Mais il n'y a encore pas assez de caractères dans la chaîne de cryptage (023456789), il est donc encore impossible de crypter la chaîne entrée.

La question est : comment savoir que ce n'est pas possible ?

kyrie243
Membre Naturel
Messages: 13
Enregistré le: 28 Mai 2018, 20:56

Re: [C#] Equation avec deux variables aléatoires

par kyrie243 » 22 Juin 2018, 21:32

Le problème tu ne le regardes pas de la bonne façon. Tu devrais le regarder comme on fait en probabilités.

Pour le cas fixé c'est le plus simple comme je te l'explique plus haut, la question est "Est-ce qu'il y a suffisamment de possibilités?" suffisamment selon ton explication ça veut dire plus de 1, ce pourrait être plus encore. Et pour savoir combien il y a de possibilités de nombre, il suffit de voir la version crypté d'une lettre comme où chaque X prend une valeur aléatoire entre 0 et 9.
Pour savoir s'il y a assez de possibilité il faut donc faire ce qui te donne le cardinal de l'ensemble des possibilités.

Après à partir de ce cas avec une valeur fixé, il n'y a plus de problème pour si la valeur donné est aléatoire. Car si je te dis que j'organise mon mariage il y aura entre 200 et 300 invités (il y en aura beaucoup moins en vrai si je me marie) par réflexe qu'est-ce que tu vas faire? Bah tu vas prévoir 300 places, donc là c'est la même chose pour le cas de y car y est le minimum donc les longueurs seront entre y et 10 par sécurité le cas de y devient donc le même cas que x = 10.
Et enfin le dernier cas, z, cette fois étant donné que c'est la longueur maximal c'est elle la sécurité donc on fait

Scar
Messages: 4
Enregistré le: 22 Juin 2018, 01:01

Re: [C#] Equation avec deux variables aléatoires

par Scar » 23 Juin 2018, 12:34

Merci de ton aide !
J'ai donc adapté ce que j'ai compris de ta réponse en C#
Code: Tout sélectionner
public static bool CanEncode(string textToEncode, string generationKey, int length)
        {
            float ratio = (float)textToEncode.Length / (float)generationKey.Length;

            if (ratio / length > 1)
            {
                return false;
            }
            return true;
        }

public static bool CanEncode(string textToEncode, string generationKey, int minLength, int maxLength)
        {
            float ratio = (float)textToEncode.Length / (float)generationKey.Length;

            for (int i = minLength; i <= maxLength; i++)
            {
                if (ratio / i > 1)
                {
                    return false;
                }
            }
            return true;
}


Sujet clos !

 

Retourner vers ⚔ Défis et énigmes

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 5 invités

cron

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite