Recopie d'un nombre de lignes espacées

Salut Curulis57 !

Voici mes résultats !

Quelques exercices de combinatoire classique pour obtenir ces solutions :)

Déjà, le maximum théorique de combinaisons pouvant être générées avec 10 ordres à k=10 et n=10 est de (tiens toi prêt) :

maximum atteignable prog

Nous dépassons bien entendu de beaucoup les limites Excel, je n'en doute pas (pauvre 1 048 576... d'ailleurs ça devient rouge dès qu'on dépasse cette valeur).

Voici le programme Excel qui permet de calculer le nombre de combinaisons absolument totales sachant tous les k et les n générés. Pour que ça marche, il faut toujours remplir paire par paire les k(x) et les n(x) par ordre. Par contre, tu peux rentrer le nombre d'ordres que tu veux.

A titre informatif, le nombre de combinaisons exactes pouvant être générées sachant k et n, pour un ordre fixé (programme h2so4) est le suivant :

image

Pour bien utiliser le programme que je t'ai mis à disposition, il te suffit de remplir les cases C5:L6 à ta guise .

Tu peux afficher les lignes 7 à 13 et 35 à 65 si tu souhaites comprendre exactement comment les calculs sont faits ;)

Je d'y apporter les améliorations suivantes :

1) Correction des erreurs existantes - Comme il subsiste des erreurs dans ton programme (par exemple pour k et n fixés à 3 chacun pour l'ordre 3, je dois obtenir 799 combinaisons totales, et non 904 comme tu l'obtiens : j'ai fait un CONCATENER + mise en forme conditionnelle "doublons" et il semble y avoir des valeurs en double, mais je ne sais pas pourquoi...)

L'exemple en question :

2) Intégration de tous les couples k/n possibles, comme indiqué sur l'image du tableau Excel ci-dessus (73 couples K/n si j'ai bien compté puisque si tu le veux, tu peux supprimer tous les cas où k=1 vu que k=1 ne génère aucune combinaison)

3) Je te propose même d'y intégrer mon petit calculateur de combinaisons pour que à la fin de la génération de toutes les combinaisons en fonction de ton tableau onglet "h2so4" tu puisses vérifier instantanément si tu as le bon nombre de combinaisons ou pas => En conséquence, pourquoi ne pas indiquer, lorsqu'on a cliqué sur ta macro, une fenêtre informative qui dit "vous avez généré XXX combinaisons" ? Ca te permettrait de vérifier encore plus rapidement que de lire le n° de la dernière ligne :D

Voilà voilà qu'en dis-tu ? :D

Merci encore pour tout ce que tu as fait, je comprends si tu veux t'en arrêter là ;)

Salut gthe,

tu as passé la nuit dessus ?
Je te salue d'abord avant de commencer la lecture de ton post : tu connais mon niveau...

Bon, où sont mes Perdolan...


A+

Salut Curulis57,

Je voulais le faire hier soir avant de dormir, mais je me suis endormi avant :(

Non ça va, ça m'avait pris 3 jours il y a une semaine pour me replonger dans les arbres de probabilités, donc je connaissais les formules, ça m'a pris une bonne heure et demie, surtout que je ne connaissais pas la formule "SOMME.SERIES" ahah :D

Salut gthe,

quand je scrute ton File Error, à en perdre mes dernières particules mathématiques d'ailleurs, il me semble avoir capté un truc que j'ai sans doute zappé dans ton, excuse-moi (c'est sans méchanceté ) fratras de matheux.
Il faudrait donc, pour toute ligne riche d'un ordre 'H2SO4' en cours de traitement, ne la dupliquer QUE du nombre de lignes riches de la combinaison K/n de l'ordre suivant ?
Seule explication que je trouve...

Ce qui réduirait, sans doute drastiquement, le nombre de lignes générées...

Á votre clavier, professeur !


A+

Ouais, non, pas possible... Comprends pas... Déso...

Salut Curulis57,

Les joies de la combinatoires pour ce fatras mathématique... ;) Mais je comprends ton sentiment :D

En tout cas, ça permet de vérifier si ton programme génère exactement le bon nombre de combinaisons, plutôt pratique ;)

Il faudrait donc, pour toute ligne riche d'un ordre 'H2SO4' en cours de traitement, ne la dupliquer QUE du nombre de lignes riches de la combinaison K/n de l'ordre suivant ? Qu'appelles tu "lignes riches de la combinaison K/n de l'ordre suivant ?" Voir l'explication plus bas (sur un exemple) :


L'explication :(Je prends un exemple) :

Imagions que ton programme a tracé toutes les combinaisons k(x) et n(x) et qu'il est sur le point d'écrire les combinaisons de l'ordre 6.

A la fin de l'ordre 5, disons que ton programme a généré 50 000 combinaisons.

Parmi ces 50 000 combinaisons, gageons que 10 000 sont des lignes riches (c.a.d qu'elles contiennent toutes les étapes réalisées jusqu'à la 5 ème inclus)

Parmi ces 10 000 combinaisons, imaginons que 3 000 se terminent par le chiffre final le plus élevé

==> Ce sont donc uniquement ces 3 000 lignes qui subiront une duplication. (double condition : ligne riche + chiffre final le plus élevé)

Imaginons que pour l'ordre 6 on a n=4 et k=4, soit une génération par le programme h2so4 de 121 combinaisons.

Alors, chacune des 3 000 lignes est copiée 120 fois.

(120 car la 121 ème, c'est la ligne copiée).

Et donc à l'issue de l'opération, à l'ordre 6, ton programme contient alors : 47 000 lignes (toutes celles qui n'ont pas été copiées) + 3 000 lignes x 121 = 410 000 combinaisons :)

Voilà ;)

Ma réponse est peut-être un peu rapide mais... c'est ce que je fais...
Les blocs rouges sont censés représenter des lignes excédentaires ?

Pas de problème :)

Euh, qu'entends-tu par blocs rouges ?

Mais, dans ton fichier "Exemples avec erreurs" dans ton message de 14:25 !!

Salut Curulis57,

Au temps pour moi, j'ai tellement utilisé des blocs rouges partout que je ne voyais plus de quoi tu parlais ;)

Oui, dans ce fichier "exemple avec erreurs", ça représente les lignes qui figurent en plus de 1 exemplaire ! (qui ne doivent être qu'en un seul exemplaire) ;)

Salut gthe,

tu ne donnes pas d'explication logique (matheux, va on dirait mon prof!) mais... j'ai capté que cette portion de combinaison est la portion pauvre de l'ordre en cours.
Bon, que je n'aie pas à recalculer cela avec mes pauvres capacités, cette configuration ne peut se passer que pour des ordres identiques successifs ?!

On avance ! Ça va aller d'autant que j'ai appelé Steelson à la rescousse!
Je regarde ça et je reviens!


A+

Re Curulis57,

j'ai capté que cette portion de combinaison est la portion pauvre de l'ordre en cours.

==> Celle que j'ai mis en rouge ? Ah c'est possible, je t'avoue j'ai juste comparé le nombre de combinaisons théoriques avec les tiennes. Puis quand j'en ai eu marre de refaire tous les calculs à la main, j'ai fait le petit Excel qui calcule les combinaisons ;)

cette configuration ne peut se passer que pour des ordres identiques successifs ?!

==> Euh de quoi parles-tu ? J'avoue ne pas comprendre de quoi tu parles, ni le sens de ta question. Reformules si tu ne souhaites pas que je t'induise en erreur

Ah, je t'avoue c'est pas un problème simple... :D Mais après dès qu'on comprend comment ça fonctionne, c'est moins dur ;)

Eh, c'est toi le prof et c'est moi qui t'explique !? Le monde à l'envers, dingue !

111<-
112<-
121<-
122<-
211<-
212<-
221<-
222<-
113|111<-
113|112<-
113|121<-
113|122<-
113|211<-
113|212<-
113|221<-
113|222<-
113|113
113|123
113|13
113|213
113|223
113|23
113|3

Je n'ai pas encore testé et cela aurait été plus vite sans doute que de t'expliquer TON truc !
Cela n'arrive-t-il que lors de plusieurs ordres identiques successifs, donc, par exemple, comme ici, K3n3 - K3n3 ou K5n7 - K5n7 : scrupuleusement identique !!


A+

Quote : tu ne donnes pas d'explication logique du post de 18:10 (matheux, va on dirait mon prof!) mais... j'ai capté que cette portion de combinaison (c.a.d celle qui est en rouge) est la portion pauvre de l'ordre en cours.

Bon, que je n'aie pas à recalculer cela avec mes pauvres capacités, cette configuration (c.a.d, le fait qu'il y a ait des combinaisons qui se répètent en trop, comme pour le fichier que tu m'as envoyé) ne peut se passer que pour des ordres identiques successifs (par ex : ordre x : K3n3 , ordre x+1 : K3n3 aussi ; ou ordre x : K5n7 , ordre x+1 : K5n7) ?!

==> Ah oui d'accord, je comprends mieux :) Si tu avais ajouté ce que j'ai indiqué en bleu, j'aurais mieux compris ahah.

Si j'ai bien compris, tu me demandes si cette erreur intervient quand on programme des K/n successifs identiques ? Par contre l'exemple K5n7 n'a pas été programmé sur ta version d'origine :)

Je viens de faire un exemple avec

RANG123
k(x)432
n(x)333

(et rien d'autre sur les ordres suivants)

Ton programme me retourne 1096 combinaisons au lieu de 495. Je regarde s'il y a d'autres typologies d'erreurs

Au temps pour moi k=4 et n=3 n'existe pas dans ton programme car tu ne l'as pas encodé (dans BDD c'est d'abord n puis k selon ta légende)

K5n7 était un exemple. Ici, ce sont 2 ordres successifs K4n3 et le cas se présente de la même manière.

1111<-
1112<-
1121<-
1122<-
1211<-
1212<-
1221<-
1222<-
2111<-
2112<-
2121<-
2122<-
2211<-
2212<-
2221<-
2222<-
1113|1111<-
1113|1112<-
1113|1121<-
1113|1122<-
1113|1211<-
1113|1212<-
1113|1221<-
1113|1222<-
1113|2111<-
1113|2112<-
1113|2121<-
1113|2122<-
1113|2211<-
1113|2212<-
1113|2221<-
1113|2222<-
1113|1113
1113|1123
1113|113
1113|1213
1113|1223
1113|123
1113|13
1113|2113
1113|2123
1113|213
1113|2213
1113|2223
1113|223
1113|23
1113|3

Question subsidiaire : puisque tu sais calculer le nombre théorique de combinaisons totales... pourquoi essaies-tu de les coucher sur feuille ??


A+

Les tableaux en 'BDD' décrivent K & n

Pour la petite histoire, je les avais TOUTES calculées et bien rangées dans 'BDD' : 380 Mo !
Pas de chance, la messagerie du taf n'a pas voulu les envoyer : trop louird ! = à la poubelle !

T'inquiète pas, je vais les refaire toutes...

Mais du coup, quelle est ta question ? Tu souhaites savoir si l'erreur ne se produit dans ton programme que pour des K/n successifs (c'est à dire que pour deux ordres d'affilée (ou plus) on obtient une erreur ?). Je vais regarder.

Ah pour ta question subsidiaire je peux te répondre : je cherche à calculer une espérance mathématique.

Sa formule : p1xg1 + p2xg2 + p3xg3 + ... p1048576xg1048576 :)

Son calcul ne peut se faire qu'en connaissant la probabilité de chaque issue. Même s'il y en a plus de 1 000 000 ... Connaître le nombre de combinaisons permet uniquement de vérifier si le programme fonctionne ;) Et permet aussi de calculer plus rapidement les gains. Mais pas les probas :( :(

Chacun des "1", "2", ... représente en fait une probabilité dans le long tableau de combinaisons. A la fin j'aurai pour vocation de faire une copie entière du tableaux de combinaison et de remplacer ces nombres par des probabilités ;)

Pas de chance, la messagerie du taf n'a pas voulu les envoyer : trop louird ! = à la poubelle !

==> C'est affreux , tu n'aurais pas pu t'envoyer le fichier dans ta propre boîte mail perso que tu aurais téléversé en revenant chez toi ?

C'est dans l'ordre K et n dans les tableaux de la base de données ? Et pas plutôt n et K ? J'aurais dit n et K vu que n c'est le nombre de chiffres :D

Sinon vu les limitations, on ne pourra pas faire toutes les combinaisons (et je comprends ce que tu avais voulu m'expliquer l'autre jour ;) )

k=1 : ça donne "0 combinaison" dans tous les cas

k = 2 : tout de n = 1 à n = 10

k = 3 : tout de n = 1 à n = 10

k = 4 : tout de n = 1 à n = 10

k = 5 : de n = 1 à n = 9

k = 6 : de n = 1 à n = 8

k = 7 : de n = 1 à n = 7

k = 8 : de n = 1 à n = 7

k = 9 : de n = 1 à n = 6

k = 10 : de n = 1 à n = 6

Voilà les limites de programmation ;)

Autre truc que je constate puisque tu n'aimes pas les "doublons".
Ici, j'ai K4n3 - K2n3 - K4n3 : les données flottantes à droite sont la copie de la combinaison 3 sur les lignes riches de l'ordre 2 (tout le monde a compris, sauf gthe ? Ok, on continue)

Il y a doublons entre la portion pauvre de l'ordre 1 et la copie de la combinaison 3 sur les lignes riches de l'ordre 2 ! Tu es toujours là ? Je dois les supprimer aussi ?
Et, dans tous les cas, faut-il vérifier alors dans tout le bazar, à chaque ordre, que la combinaison riche n'a pas la même copie "terminale" plus haut ?

1111<>1111
1112<>1112
1121<>1121
1122<>1122
1211<>1211
1212<>1212
1221<>1221
1222<>1222
2111<>2111
2112<>2112
2121<>2121
2122<>2122
2211<>2211
2212<>2212
2221<>2221
2222<>2222
1113|111113
1113|121123
1113|21113
1113|221213
1113|131223
1113|23123
1113|313
1123|11
1123|12
1123|21
1123|22
1123|13
1123|23
1123|3
113|11


A+

dans ta propre boîte mail perso

Pas pensé une seconde, les collègues de jour arrivaient...

Rechercher des sujets similaires à "recopie nombre lignes espacees"