Enorme PB

gogaulegogaule Membre
16:57 modifié dans API AppKit #1
Re-bonsoir .
Qui voudras bien m'aider à   réaliser un tirage au sort :
int lesNumero // Les numéros de la deuxième colonne
-(void)setNumerosRandomly;
-(int)lesNumero

-(void)setNumerosRandomly {
lesNumero = random() % ?? +1 ;} // Comment lui dire de prendre en compte les N° de la deuxième colonne ?
-(int)lesNumero {
return lesNumero }...

Merci
Cordialement.
«1

Réponses

  • schlumschlum Membre
    16:57 modifié #2
    Rien compris pour changer...
  • gogaulegogaule Membre
    16:57 modifié #3
    Bonsoir .
    Mon bon Schlum .
    Oui , je voudrais réaliser un ..... tirage au sort ...
    Une fois  les inscriptions prisent , faire un tirage au sort , avec les numéros des participants ."ou des équipes de"
    J' ai créé une deuxième colonne N°( .. Seul ennui les numéros sont inversés ..) de 1 à  x ...
    reprendre ces N° : Si 23 , tirage au sort sur 23  . Si 34 , tirage au sort sur 34 etc...
    Explications : Lors d'un concours , de belote , de tarot , de pétanque , il faut "mélanger" les participants pour qu'ils  se rencontre 2 par 2 .
    La deuxième colonne de N°  .. Lors du classement les numéros ne changent pas ... Pour retrouver les n° des participants  c' est compliqué . Alors une deuxième colonne avec des n° qui suivent les classements .
    J' ai créé ce petit morceau de code .. et à  la réflexion ,... hum soyez indulgent ..

    Le tableau bug , je doit cliquer deux fois pour classer les scores .

    Merci
    Cordialement.
  • schlumschlum Membre
    16:57 modifié #4
    Toujours rien compris... Mais apparemment c'est une affaire de tirage sans remise ; il faut garder la liste des numéros et une fois un tiré, le supprimer de la liste.
  • gogaulegogaule Membre
    16:57 modifié #5
    Re-bonsoir.
    Non .
    Je ne sais pas comment m' expliquer mieux.
    X participants : Le but est de les faire se rencontrer ... Pour les jeux de cartes 2 contre 2 .. 1 équipe contre une autre équipe . Le n° x .. contre le n°  y . Brasser les n° . Après l' organisateur prend les deux premiers n° sortis et  les fait jouer l'un contre l'autre et ainsi de suite .. Ensuite le classement sert à  faire jouer les gros scores l' un contre l' autre  .
    Les mélanger sur la même colonne ,comme le classement sur la colonne total .
    Merci Schlum
    Cordialement.
  • schlumschlum Membre
    avril 2008 modifié #6
    Oui, c'est bien un tirage sans remise... Tirage complet donc brassage.

    Pour faire un brassage, je fais comme ça :

    #include <stdlib.h>

    #define N 20

    int main (int argc, const char * argv[]) {
    int tabl[N] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
    int i,n,tmp;
    for(i=0;i<N-1;++i) {
    n = random()%(N-i-1)+1+i;
    tmp = tabl[n];
    tabl[n] = tabl;
    tabl = tmp;
    }
    for(i=0;i<N;++i)
    printf("%d ",tabl);
    printf("\n");
        return 0;
    }
  • gogaulegogaule Membre
    16:57 modifié #7
    Re-bonjour .
    Merci ,Schlum .
    Pourrais-tu commenter ,m ' expliquer un peu .
    Qui fait quoi ?
    Oui je comprends (à  retardement) Tirage sans remise ...
    Merci .
    Cordialement .
  • schlumschlum Membre
    avril 2008 modifié #8
    Ben écoute, tu suis le code, c'est du code basique de chez basique, si tu le comprends pas c'est même pas la peine de continuer.
    Pour chaque élément, ça l'inverse avec un des suivants au hasard.

    Le seul endroit un poil compliqué, c'est "random()%(N-i-1)+1+i"

    random()%(N-i-1) -> entre 0 et N-i-2
    random()%(N-i-1)+1+i -> entre i+1 et N-1
  • gogaulegogaule Membre
    16:57 modifié #9
    Re-re-  bonjour .
    Bon , vous pouvez vous moquer ,  :'(   ..
    Ce que je comprend :
    Tu initialise un tableau de 20 N°
    Ensuite dans une boucle for , tu compare les numéro , et les "décale".
    Dans la deuxième boucle tu les ré-inscrits ..en fonctions des résultats .
    Moi je voudrais ""trier"" une colonne en fonction des numéros inscrits , si 50 Inscrits , sélection sur 50 N°s.
    Merci.
    Cordialement .
    PS: Encore du fouet  >:( :-\\
  • schlumschlum Membre
    16:57 modifié #10
    Il n'y a qu'une seule boucle qui réarrange le tableau de manière aléatoire.
  • gogaulegogaule Membre
    16:57 modifié #11
    Re-re-re-bonjour re 1 <--oublié
    Oui . de 20 N° .. Je me trompe , comme dab .
    Si de 20 N° : Est-il possible de lui demander de prendre en compte les N° de la 2eme colonne N° des inscriptions .
    Je rame , je rame .
    Merci
    Cordialement.
  • schlumschlum Membre
    16:57 modifié #12
    20 c'est pour l'exemple, on met ce qu'on veut.
    C'est quand même pas compliqué de créer un tableau et de le remplir avec les numéros de la liste, si ?
  • gogaulegogaule Membre
    16:57 modifié #13
    :'( Hélas
    Bsoir :'(
    merchi ..
    Cordialement.
  • gogaulegogaule Membre
    16:57 modifié #14
    Bonjour .
    Certaines personnes nagent dans le bonheur , moi c' est .... dans la choucroute  :'( oui mes origines alsaciennes , mais tout de même .
    Shlum . Impossible de réaliser mon tirage au sort .... avec ton exemple ... ou avec randomApp .. Je suis + que NULL . Trouve pas .
    Surtout comment lui faire prendre en compte les N° présents dans la 2eme colonne . (Qui seront présents)
    numero (@%d);

    Merci.
    Cordialement .
  • schlumschlum Membre
    16:57 modifié #15
    Tant que tu n'expliques pas mieux tes problèmes, ça sera difficile...
    Pourquoi 2e colonne ? C'est quoi la 1ere ?

    Es tu capable de remplir un tableau de int avec tes numéros, oui ou non ?
  • gogaulegogaule Membre
    16:57 modifié #16
    Re-bonjour.
    Mes problèmes ... :
    Mon tableau Inscriptions et Scores ...
    Pour qu'il soit plus efficace , il faut que je réalise un tirage au sort avec les inscrits .
    La 1ere colonne du tableau .....
    Donc j' ai recréé une deuxième colonne appelée N° pour permettre l' attribution d'un n° d' ordre à  chaque participants , nombre de participants qui peut bien sur fluctuer ....
    Pour l' attribution des dit n° d' ordre le mieux et le plus simple est de les rentrer à  la main , avec le ou les noms des participants .
    Donc effectuer un tirage au sort sur les N° (fluctuants) de la 2eme colonne du tableau .
    Je pensais utiliser randomApp (bidouiller) et avec ton exemple  .. trouve pas .
    int n;
    n = random() % 10 ; //N° de 1 à  9    n = random () numero(@%d); marche pas


    Une chose qui serait épatante serait de pouvoir varier le nombre des colonnes Parties en fonction des concours . Belote 3 parties de 12 donnes ... Belote 4 parties de 10 donnes .. Tarot 8 parties de 5 donnes

    Merci.
    Cordialement.


  • schlumschlum Membre
    16:57 modifié #17
    ça serait épatant, mais faut être réaliste, c'est (très) loin de ton niveau de programmation.
    Déjà , là , ça commence à  être fatiguant ces histoires de numéros...
  • gogaulegogaule Membre
    16:57 modifié #18
    Re-re-bonjour
    Oui les Prbs de N°s  et les robinets qui fuient  hein  hein les robinets qui fuient . :)
    Sérieusement .
    Ce serait épatant ... mais cela ne solutionnerait pas mon tirage au sort .
    Une petite idée .. [size=5pt]Allez .  .  une ligne ,  une 1/2 [/size]
    Merci.
    Cordialement.
  • schlumschlum Membre
    16:57 modifié #19
    Des lignes, j'en ai donné 15 au début du sujet, et elle font tout le boulot ; y a rien à  ajouter de plus...
  • gogaulegogaule Membre
    16:57 modifié #20
    Schlum , mon bon , schlum .
    Oui , je l' ai bien compris .
    Je suis *NULL en programmation .... je pense (c'est pas sur ) avoir un peu de jugeote.  J' ai dit un peu .
    On ne rit pas ... j' ai les noms ..
    Re-bonjour .
    Comment récupères-tu les N° (fluctuants) de la 2eme colonne . :(
    Merci.
    Cordialement.
  • schlumschlum Membre
    16:57 modifié #21
    Tu sais récupérer le numéro d'une ligne en particulier ?
    Tu sais obtenir le nombre de lignes ?
    Tu sais faire une boucle ?
    Ben voilà , y a rien de plus à  faire...
  • gogaulegogaule Membre
    16:57 modifié #22
    Re- :'( :'( :'( :'( :'( :'(
  • gogaulegogaule Membre
    16:57 modifié #23
    Re-bonjour .
    Plus sérieusement (pour moi) .Non je ne sais pas .
    Mais si tu me dit cela c' est que tu ( ou vous ) m' as déjà  donné les solutions .
    Alors je vais continuer à  chercher , et essayer de comprendre .
    Si ne n'y arrive pas ..
    Pourquoi 2 fois for (boucle) ? dans ton code.
    [N] veut dire Numero ?
    printf("%d";tabl); // cela ré-inscrit le résultat dans le tableau ?
    Merci
    Cordialement.
  • schlumschlum Membre
    16:57 modifié #24
    Le deuxième on s'en fiche, c'est juste pour afficher le résultat... Mais si ça n'a pas été compris, je crois que c'est un peu désespéré  ???
  • gogaulegogaule Membre
    16:57 modifié #25
    Re-re-re-Bonjour.
    C' était ce que je pensais avoir compris .
    N ---> = numero ?
    Oui si voustu tuvous ne m'aidez pas . Aucune chance .
    Merci.
    Bonsoir.
    Cordialement.
  • schlumschlum Membre
    16:57 modifié #26
    Mais non, N il est fixe, il ne bouge pas ; c'est le nombre d'éléments... ça se voit quand même non ?
    ça devient fortement agaçant là ...
  • gogaulegogaule Membre
    16:57 modifié #27
    Bonjour à  tous .
    Soyez indulgents .
    - (NSNumbersRandomly)random:(Person*)numero<br />{<br />	int i, n, tmp;<br />	for (i=0;i&lt; N-1;++i) {<br />		n = random()%(N-i-1) +1+i;<br />		tmp = numero[n];<br />		numero[n] = numero;<br />		numero = tmp;<br />		}<br />		for (i=0;i&lt;N;++i) printf (&quot;%d&quot;,numero);<br />		printf(&quot;&#092;n&quot;);<br />		return 0;<br />}
    

    J' ai écrit ce code  et -(NSNumbersRandomly)random:(Person *)numero; dans Person.h
    Il ne fonctionne pas . erreur sur NSNumbersRandomly ..
    Merci
    Cordialement.
  • schlumschlum Membre
    avril 2008 modifié #28
    Pour changer, c'est du grand n'importe quoi...

    NSNumbersRandomly -> ça sort d'où ?
    T'as toujours pas compris que N il fallait le remplacer par le nombre de lignes dans le tableau
    T'as pas viré l'affichage qui veut absolument plus rien dire
    Person* on se demande ce que ça fout ici et comment tu peux bien oser faire numero[n] avec numero étant un Person*  ::)

    Bref, je jette l'éponge, c'est trop désespérant.
  • orfaitorfait Membre
    16:57 modifié #29
    dans 1209551576:

    Bref, je jette l'éponge, c'est trop désespérant.

    Salut,

    Je n'ai absolument rien à  ajouter. Je passe juste pour dire que je suis vraiment impressionné par ta persévérance !! Peut être une âme d'enseignant ?




    [size=5pt]Ceci dit, ta persévérance n'est pas la seule à  me scier[/size]
  • schlumschlum Membre
    16:57 modifié #30
    Ah non, enseignant bof... Ou alors enseignant chercheur... Ce que j'aime c'est créer ; apprendre aux autres à  le faire aussi, mais c'est secondaire  ;)
  • schlumschlum Membre
    16:57 modifié #31
    gogaule, je vais quand même essayer de terminer sur une note positive.
    Puisqu'apparemment, tu as du temps, je te conseille ce tutoriel :

    http://www.siteduzero.com/tuto-3-8-0-apprenez-a-programmer-en-c.html
    Le C fait partie intégrante du l'Objective-C et du Cocoa, et c'est un langage " de base "

    Suis les 2 premières parties de ce tutoriel (la 3e on s'en fiche pour le Cocoa), et surtout ne quitte pas un chapitre sans avoir parfaitement compris les tenants et aboutissants de ce qu'il explique.

    Une fois que tu auras acquis un peu de logique de programmation, reviens poser tes questions.
Connectez-vous ou Inscrivez-vous pour répondre.