Il me faut 12 codes a trois chiffres avec que 0,0,1

Résolu/Fermé
VisonFurtif62 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour,

il me faut 12 codes a trois chiffres avec que 0,0,1
Windows / Edge 137.0.0.0

10 réponses

PierrotLeFou
 

Je veux bien vous en donner 8. Les 4 autres sont cachés dans la machine quantique de mes prédécesseurs.
Ce serait sans doute bien de clarifier l'énoncé ou de donner des exemples.
(oserais-je dire plus simples ...)

1
Utilisateur anonyme
 

Bonjour,

A tout hasard.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    // Initialisation du générateur aléatoire
    srand(time(NULL));

    for (int i = 0; i < 12; i++) {
        int n = rand() % 8;  // Nombre aléatoire entre 0 et 7

        // Extraire chaque bit (du plus significatif au moins)
        int bit2 = (n >> 2) & 1;
        int bit1 = (n >> 1) & 1;
        int bit0 = n & 1;

        // Afficher les bits séparés par des virgules
        printf("%d,%d,%d\n", bit2, bit1, bit0);
    }

    return 0;
}
1
brucine Messages postés 21869 Date d'inscription   Statut Membre Dernière intervention   3 473
 

Bonjour,

Je continue à ne rien y comprendre mais la solution n'est en rien aléatoire.

L'exercice est sans doute mal posé et serait plus proche de celui qu'on trouve ici, s'agissant en fait d'énumérer sans remise toutes les séries de 12 chiffres contenant les chiffres 0 et 1, à cela près, à préciser, qu'on ne comprend pas alors pas bien le rôle de répéter 0 (0,0,1) et celui de 3 chiffres dans cette galère.

https://forums.commentcamarche.net/forum/affich-22743843-combinaisons-de-0-et-de-1

0
Utilisateur anonyme > brucine Messages postés 21869 Date d'inscription   Statut Membre Dernière intervention  
 

parce que tu pense que nous y comprenons quelque chose?
 

la question est posé part VisonFurtif62 et il n'a toujours pas donné signe de vie!

1
brupala Messages postés 112077 Date d'inscription   Statut Membre Dernière intervention   14 185 > Utilisateur anonyme
 

Salut,

la question n'a tout simplement pas de sens, inutile de disserter là dessus.

0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884 > brupala Messages postés 112077 Date d'inscription   Statut Membre Dernière intervention  
 

Il n'est dit nulle part dans l'exercice de départ que les 12 arrangements à générer doivent être distincts.

0
Pierr10 Messages postés 13249 Date d'inscription   Statut Modérateur Dernière intervention   5 455
 

Bonjour,

Si j'ai bien compris la demande, c'est impossible. 

Ça revient à compter en binaire de 000 à 111, c'est à dire de 0 à 7 en décimal.

Il y donc 8 combinaisons possibles.


0
brupala Messages postés 112077 Date d'inscription   Statut Membre Dernière intervention   14 185
 

Salut,

en informatique quantique, on doit y arriver :-)

Mais ne comptez pas sur moi pour expliquer ...

0
brucine Messages postés 21869 Date d'inscription   Statut Membre Dernière intervention   3 473 > brupala Messages postés 112077 Date d'inscription   Statut Membre Dernière intervention  
 

Bonjour,

C'est beaucoup trop savant pour moi, mais rien n'est moins sûr.

Le qubit peut gérer plusieurs états probabilistes simultanés (mais n'en mesurer qu'un seul), on dit qu'il peut à la fois revêtir les valeurs 0 ou 1 ou être superposé à un état quelconque qui vaudrait n'importe quoi entre 0 et 1.

Comme illustré ici et si j'ai bien compris, chaque valeur en bits (ici il y en a 3) peut alors revêtir 2^n valeurs soit 8 au lieu d'une seule, et comme à la base j'ai toujours 8 valeurs en bits normaux, j'aurais 64 valeurs individuelles en qubits mais ce qui ne me dit pas si pour chaque valeur classique on ne peut pas imaginer une valeur variable parmi les 8 pour chaque autre, on en aura alors nettement plus.

En tout cas je n'ai pas 12?

https://www.oezratty.net/wordpress/2018/comprendre-linformatique-quantique-ordinateur-quantique/
 

0
brucine Messages postés 21869 Date d'inscription   Statut Membre Dernière intervention   3 473
 

Bonjour,

Je ne comprends rien à la programmation, mais le nombre total d'arrangements de 2 chiffres en 3 éléments avec remise n'est pas 12 mais 2^3 = 8, il suffit de les énumérer par exemple en ordre binaire croissant pour vérifier.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
steph810 Messages postés 1787 Date d'inscription   Statut Membre Dernière intervention   143
 

0,1,0
1,0,0
0,0,1
1,0,0
0,1,1
1,1,0
0,1,0
1,1,0
0,0,1
1,0,0
0,1,1
1,0,1
 

0
steph810 Messages postés 1787 Date d'inscription   Statut Membre Dernière intervention   143
 

c'est radom on appliques les permutation

#!/bin/bash

# Liste des chiffres 
nombres=(0 0 1) 

# Générer 12 codes avec les chiffres 0, 0, 1
for i in {1..12}
do
    # Choisir aléatoirement 3 chiffres parmi les chiffres 0, 0, 1
    code=$(echo "${nombres[RANDOM % ${#nombres[@]}]}"",""${nombres[RANDOM % ${#nombres[@]}]
       
    # Afficher le code généré
    echo "$code"                                                                           
done
-1
brucine Messages postés 21869 Date d'inscription   Statut Membre Dernière intervention   3 473 > steph810 Messages postés 1787 Date d'inscription   Statut Membre Dernière intervention  
 

On ne voit pas où est l'aléa et on tournera ça dans tous les sens qu'il n'y a que 8 combinaisons différentes, pas 12 comme dans ton exemple en <4> où certaines sont redondantes et d'autres omises.

Si la question est un exercice scolaire (que l'on n'a pas à faire) consistant à énumérer ces combinaisons avec un programme en C, c'est une autre question mais il faut revoir sa copie, il n'y en aura toujours que 8.

Il est facile à réaliser en Batch, je ne comprends rien à C mais l'algorithme doit partir du même principe: dans l'intervalle 0,1 on choisit la première valeur, on imbrique pour obtenir la deuxième dans ce même intervalle et on imbrique à nouveau pour obtenir la troisième: on aura successivement 0,0,0-0,0,1-0,1,0 etc.

0
steph810 Messages postés 1787 Date d'inscription   Statut Membre Dernière intervention   143 > brucine Messages postés 21869 Date d'inscription   Statut Membre Dernière intervention  
 

oui erreur je n'avais pas vue ca me semblais evident :{

ne pas tenir compte.

en fait c'est impossible lol, sauf s'il n'accèpte pas uniquement que 0,0,1  

0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884 > steph810 Messages postés 1787 Date d'inscription   Statut Membre Dernière intervention  
 

On est dans le forum C, pas bash. Aussi, merci de ne pas faire de vidéos quand ça n'est pas nécessaire.

0
PierrotLeFou
 

Il y a une autre possibilité. Le 12 est exprimé en base 6. une "sixaine" plus deux unités.

0
brupala Messages postés 112077 Date d'inscription   Statut Membre Dernière intervention   14 185
 

Deux sixaines, non ?

0
PierrotLeFou
 

En base 10, je dirais une "dizaine" et deux unités, non?
Donc, en base 6, je dis une "sixaine" et deux nités. Peut-être "sizaine" au lieu de "sixaine"?

0
brupala Messages postés 112077 Date d'inscription   Statut Membre Dernière intervention   14 185
 

oui, mais ça fait 8 en tout :-)

pour faire 12, il faut une douzaine :-))

0
flo88 Messages postés 28405 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 5 000
 

Sa question provient sans doute d'un exercice en binaire, chaque 0 étant diffèrent dans le codage, par ex venant d'une roue codeuse type 001, cela a existé chez Crouzet par ex. Dans ce cas, il y a même plus que 12 combinaisons en sortie.

Comment coder des informations en binaire — Pixees

0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 

Bonjour,

Préliminaires

La question est effectivement mal posée.  @VisonFurtif62 StatutMembre est nouveau/nouvelle et n'est pas habitué.e aux forums.

Donc :

  •   @VisonFurtif62 , merci de prendre le soin de bien poser tes questions pour qu'elles soient claires et non ambigües -- la deuxième partie de ce message va te montrer pourquoi la question est trop vague et pourquoi la discussion a dérivé;
  • les autres, merci de prendre le temps de lire la question (même quand elle est mal écrite) et d'être bienveillants (troller ne peut qu'intimider).
    • Oui, il n'y a que 8 permutations de 3 bits, et alors ? L'énoncé ne demandes pas qu'elles soient distinctes.
    • Non, l'algorithmique quantique n'a rien à voir. Je ne sais pas si c'était premier ou second degré, mais quoi qu'il en soit, si c'est un sujet qui vous intéresse, je vous recommande cette vidéo car les gens ont souvent une mauvaise perception de dont il s'agit. 
    • Non, il n'est pas question d'écrire zéro en minuscules ou en majuscules, l'énoncé à bien dit "0" ou "1" et si c'était le cas, on pourrait en considérer n'importe où dans les mots (et tant qu'on y est, on pourrait considérer d'autres langues).

Vers une question mieux posée

Un énoncé mieux rédigé serait par exemple :

Écrire une fonction en C, qui retourne 12 permutations aléatoire (non distinctes) composées d'une suite de 3 bits.

Cela demanderait qu'on clarifie le prototype de la fonction en question, par exemple (si tu ne sais pas ce que c'est tu peux avancer à la proposition d'énoncé suivante) :

  • Faut-il travailler sur un bloc de 12*3=36 bits ?
    • faut-il que le tirage aléatoire soit uniforme ? (sinon, il suffit de retourner un nombre compris entre 0 et 35 inclus et de récupérer les bits significatifs).
  • Faut-il travailler un tableau contenant 12*3 valeurs ? Si oui :
    • Faut-il faire 12 tableau de 3 valeurs, ou un tableau de 36 valeurs ?
    • Quel type utiliser pour chaque valeur ?
  • Est-ce que cette zone mémoire est préallouée ?

Vu qu'il s'agit visiblement d'un exercice pour débuter, l'énoncé est donc plus probablement :

Écrire un programme en C, qui affiche 12 permutations aléatoire (non distinctes) composées d'une suite de 3 bits.

Dans ce cas, #10 répond à la question, même s'il n'est pas nécessaire de passer par une décomposition binaire (il suffit d'appeler 12 * 3 fois une fonction qui tire un nombre aléatoire parmi 0 et 1), on pourrait écrire plus simplement :

#include <stdio.h>   // printf
#include <stdlib.h>  // rand
#include <time.h>    // time

int main() {
    srand(time(NULL));
    for (unsigned i = 0; i < 36; ++i) {
        printf("%d", rand() % 2);
        printf(i % 3 == 2 ? "\n" : " ");
    }   
    return 0;
} 

Si tu n'as pas obtenu la réponse attendue, je t'invite à rouvrir un nouveau fil de discussion en veillant à poser ta question plus précisément. 

Bonne chance

0
PierrotLeFou
 

Peut-être qu'on ne le voit pas, mais in y aurait un zéro minuscule et un zéro majuscule?
zzz
zz1
zzZ
z1z
z11
z1Z
zZz
etc.
Mais ça donnerait 27 possibilités, pas 12.

-1
brupala Messages postés 112077 Date d'inscription   Statut Membre Dernière intervention   14 185
 

Salut, bien vu ;-)

il y a peut-etre un O et un 0  aussi : 0 majuscule et zéro, autrefois pour être sûr on écrivait zéro Ø

0