IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mathématiques Discussion :

Tri d'une série de 28 nombres dont la somme est 1105, parmi une série de 114 nombres


Sujet :

Mathématiques

  1. #21
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 145
    Points : 9 607
    Points
    9 607
    Par défaut
    Pourquoi veux tu diviser par 2 pour ces questions de parité ? Si les 114 nombres étaient tous pairs, (ou tous impairs) évidemment, oui, il n'y aurait pas de solution.

    Je dis qu'il y a environ 4x10^22 combinaisons qui donnent 1105, à peu près pareil pour 1106, à peu près pareil pour 1107, etc. Et ça monte petit à petit, pour atteindre à peu près 2x10^24 pour les nombres proches de 1531 (la valeur moyenne quand on prend 28 nombres parmi les 114 proposés). Et la somme de tous ces nombres donne notre total , 4x10^26.
    Donc il y a bien la moitié des combinaisons qui donnent un nombre pair. Pas de raison de diviser par 2.

    Autre façon de voir le problème : on a un total de 4x10^26. On doit dispatcher ce total sur les nombres entre 300 et 6000 ... c'est à dire les différents totaux possibles, (j'ai exclu les extrêmes, qui restent possibles, mais très très peu probables). On doit donc dessiner une gaussienne, avec ces 5700 valeurs possibles, et regarder la hauteur obtenue pour chaque barre.

    Evidemment, dans tout ça, on fait l'impasse sur les valeurs qui se répètent. On considère que la combinaison 286.7a.54.7b.11a et la combinaison 286.7c.54.7b.11b... ce sont 2 combinaisons différentes.
    Si on considère ça comme des doublons, il faut diviser tout ça par un facteur proche de 100 (à vérifier). Et comme les nombres multiples sont plutôt les petits nombres, il faut diviser par un facteur plus grand pour les nombres proches de 1000 ou 1100.

    Si on avait un seul nombre impair parmi les 114 ... on aurait un biais. On tire 'seulement' 28 nombres sur les 114. On aurait donc environ 1 quart des tirages avec une somme impaire, au lieu de la moitié comme on a ici. Et donc il faudrait appliquer un coefficient 1/2
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  2. #22
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 276
    Points : 13 553
    Points
    13 553
    Par défaut
    On ne sait toujours pas ce que sont ces nombres, mais s'ils sont en correspondance avec des sourates, elles ne peuvent pas être interverties. 12 et 12 ne désignent pas le même 12. On revient donc à la bonne vieille combinaison : Formule mathématique
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #23
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 60
    Points : 53
    Points
    53
    Par défaut
    Il me semble que, suite à ma question pour le savoir (je crois que personne n'avait encore posé la question), si, on le sait :
    Citation Envoyé par arrangement Voir le message
    La série des 114 nombres correspond au nombre de versets des 114 sourates (chapitres) du Coran. Le nombre 28 est celui des lettres arabes et des mansions lunaires.

  4. #24
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 482
    Points : 4 686
    Points
    4 686
    Par défaut
    Bonjour,

    L'exemple que je donne est caricatural car simpliste, mais il est loin d'être le seul. Par exemple s'il n'y avait qu'un impair il devrait figurer dans toutes les solutions. Cela montre qu'il y a une sensibilité à la répartition paire impaire (pas seulement, les autres bases premières avec la somme recherchée pourraient faire l'objet d'études similaires plus laborieuses).

    Je ne suis pas sûr que le rapport 2 soit la bonne réponse, mais considérer que ce ne sont que des cas d'exception me semble tout aussi spécieux. Par exemple, si toutes les valeurs étaient impaires nous aurions le même problème car il y a 28 valeurs ce qui interdirait d'avoir 1105.

    Sans aller chercher d'autres distributions de valeurs, la première est 218 et la seconde 230 sans rien entre les deux. Les discontinuités engendrées par la discrétisation des combinaisons d'entiers diminuent au fur et à mesure que l'on se rapproche de la valeur moyenne (qui est une valeur inatteignable puisque non entière) mais doivent laisser des traces sur les probabilités.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  5. #25
    Candidat au Club
    Homme Profil pro
    enseignat retraité
    Inscrit en
    Octobre 2024
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Tunisie

    Informations professionnelles :
    Activité : enseignat retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2024
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Solution artisanale
    Bsr,
    Pas besoin de se tirturer les méninges. La solution est bien plus simple dès lors que les de 28 nombres des séquences recherchées doivent être consécutifs. Je pense que la récolte ne devrait pas dépasser les 150 combinaisons. Parmi lesquelles il faudrait ensuite trier les séquences répondant au critère de la somme (1105): cela ne devrait pas dépasser les 4 ou 5 solutions. Attendons pour voir. Je communiquerai le protocole et le résultat avant samedi .
    Cordialement

  6. #26
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 276
    Points : 13 553
    Points
    13 553
    Par défaut
    Ben ... c'est exactement mon message #8. Toutes les séquences qui font 1105. Il y en a 3. Et comme le rappelle tbc92, avec la contrainte de 28 nombres, on obtient la liste qu'il a lui même donné avant. Pas besoin d'attendre samedi
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  7. #27
    Candidat au Club
    Homme Profil pro
    enseignat retraité
    Inscrit en
    Octobre 2024
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Tunisie

    Informations professionnelles :
    Activité : enseignat retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2024
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Quels nombres su le podium?
    Bsr,
    Qu'il y en ait 3 ne me surprend pas sous peine de vérification. Quels sont les trois séquences selectionnées par vos calculs?
    Cordialement.

  8. #28
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 145
    Points : 9 607
    Points
    9 607
    Par défaut
    Guesset,
    Je t'assure, je suis 100% confiant.
    Je t'accorde qu'avec 114 nombres 'particulièrement bien choisis', on pourrait avec une gaussienne avec des dents de scie au lieu d'avoir une gaussienne propre.
    Par exemple, avec cette série de 114 valeurs, on a une très grande proportion de multiples de 5, et on aurait certainement le problème que tu soulignes.
    1 2 5 8 10 15 20 25 40 50 60 80
    2 4 10 16 20 30 40 50 80 100 120 160
    5 10 25 40 50 75 100 125 200 250 300 400
    8 16 40 64 80 120 160 200 320 400 480 640
    10 20 50 80 100 150 200 250 400 500 600 800
    12 24 60 96 120 180 240 300 480 600 720 960
    15 30 75 120 150 225 300 375 600 750 900
    20 40 100 160 200 300 400 500 800 1000
    25 50 125 200 250 375 500 625
    40 80 200 320 400 600 800
    50 100 250 400 500 750

    Dans la série proposée dans cette discussion, on n'a pas ce problème.

    Il y a un test simple à faire.
    Tirer 114 nombres au hasard. Calculer leur somme. Répéter l'opération 1 million de fois en comptant le nombre de fois qu'on obtient chacun des résultats possibles (un tableau d'un peu moins de 4000 compteurs). Je prétends qu'on obtient une gaussienne 'parfaite', sans dents de scie. ... Pas de dents de scie, mais pas parfaite non plus : la queue de la gaussienne à droite et celle à gauche ne sont pas symétriques.

    Je n'ai pas fait ce test, mais je crois que je vais finir par le faire.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #29
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 145
    Points : 9 607
    Points
    9 607
    Par défaut
    Si on a la contrainte '28 nombres consécutifs dans la série initiale', c'est facile dès qu'on sait se servir d'un tableur. C'est vraiment un exercice ultra basique quand on s'intéresse au traitement des nombres !

    Calculer la somme de 28 lignes consécutives, c'est une formule toute simple. Regarder si cette somme vaut 1105, c'est simple. Et il y a une seule solution, celle déjà donnée.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  10. #30
    Candidat au Club
    Homme Profil pro
    enseignat retraité
    Inscrit en
    Octobre 2024
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Tunisie

    Informations professionnelles :
    Activité : enseignat retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2024
    Messages : 8
    Points : 4
    Points
    4
    Par défaut 2 séquences de 28 nombres
    Bsr,
    Tout compte fait, de manière artisanale il est vrai, il ya sauf erreur 180 séquences (avec répétition) de 28 nombres consécutifs chacune , triées parmi un lot de 114 nombres. Parmi ces 180 combinaisons, une seulement satisfait la condition de la somme (1105). La voici:
    54
    53
    89
    59
    37
    35
    38
    29
    18
    45
    60
    49
    62
    55
    78
    96
    29
    22
    24
    13
    14
    11
    11
    18
    12
    12
    30
    52
    C'était pas trop tôt!
    Cordialement

  11. #31
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 145
    Points : 9 607
    Points
    9 607
    Par défaut
    Comment arrives tu à 180 ?
    Soit on prend les n°s 1 à 28, ou 2 à 29, ou 3 à 30 ... ou 86 à 113 ou 87 à 114.
    87 sommes à tester, et pas 180.

    J'aime bien les trucs approximatifs, artisanaux, bricolés, mais à condition que ce soit plausible.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  12. #32
    Candidat au Club
    Homme Profil pro
    enseignat retraité
    Inscrit en
    Octobre 2024
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Tunisie

    Informations professionnelles :
    Activité : enseignat retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2024
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bsr, J'ai bien précisé qu'il y a 180 séquences avec répétition. Concrètement , en mettant pour commencer le pointeur sur 1, cela nous donne les séquences 1-28/ 29-56/ 57-84/ 85-112. (28*4=112=114-2) Cela nous donne donc 4 séquences. Mais la séquence 29-56 par exemple est identique quand on place le pointeur sur le nombre 29 .
    En ignorant les répétitions-ce que n'ai pas fait-, on retombe en effet sur 87 séquences différentes comme tu l'as dit.
    Salut

  13. #33
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 482
    Points : 4 686
    Points
    4 686
    Par défaut
    Bonjour,

    Même si le problème du PO s'est avéré bien plus simple que ne le supposait l'exposé initial (87 sommes en 114 opérations simples : 28 additions pour avoir Sum0, puis 86 opérations Sumi = Sumi-1 - V[i-1] + V[i+27] pour i = 1 à 86), je suis resté sur le problème plus générique car plus intéressant.

    J'ai écrit un petit programme de simulation de tirage qui donne ceci :

    Nom : Sum1102 snap 1.png
Affichages : 57
Taille : 30,4 Ko

    Première chose que l'on remarque, la valeur moyenne est proche de 1581 et non de 1532. C'est surprenant mais nous ne sommes pas dans le cas de variables indépendantes.

    Seconde chose, consécutive de la première, le taux de solutions 1105 est plus faible qu'imaginé initialement : 1/58000.

    Ensuite les irrégularités persistent, même si la mise à l'échelle de l'écran les fait progressivement disparaître visuellement. Leurs valeurs absolues tendent à croitre tandis que leur valeurs relatives diminuent. Ainsi chercher le maximum Hmax de la courbe est assez difficile car la détection sur le sommet, quasi plat est très sensible aux irrégularités.

    La recherche de l'écart type à 0.6 Hmax gomme cette imprécision car les pentes sont fortes. On peut donc en déduire une Médiane beaucoup plus proche de l'abscisse du sommet théorique. Il faut atteindre environ 200 millions de tirages pour que la médiane (rapidement stable) coïncide avec l'abscisse du maximum (et il y a des soubresauts).

    Ci-joint l'application pour Windows : Sum1105.7z. Les sources sont disponibles si cela intéresse quelqu'un.

    Quand la souris est sur l'écran, on peut déplacer la verticale d'analyse en maintenant le bouton gauche appuyé ou avec les flèches du clavier. Il y a 3 modes de calcul. Un par un pour voir les blocs de 28 valeurs générés, lent pour voir la construction progressive de la courbe, rapide pour progresser rapidement en n'affichant que le résultat après n calculs. Il n'y a pas de défilement panoramique de l'écran : les extrêmes restent donc inaccessibles.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  14. #34
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 145
    Points : 9 607
    Points
    9 607
    Par défaut
    Je suis très sceptique sur les résultats que tu donnes.
    Du coup, j'ai moi aussi programmé un petit outil, et les résultats que j'obtiens sont beaucoup plus conformes à mon intuition.
    On est bien d'accord qu'on fait un tirage de 28 nombres, sans remise ? (mais même si on fait un tirage avec remise, je ne pense pas que ça donnerait les chiffres de ton dernier message).

    Le code (langage go) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    package main
     
    import (
    	"fmt"
    	"math"
    	"math/rand"
    	"strconv"
    	"strings"
            "time"
    )
     
    const nn28 int = 28
    const nn114 int = 114
     
    type solution struct {
    	tb [nn28]int
    }
    func (s solution) calcule_somme() int {
    	ssom := 0
    	for i := 0; i < nn28; i++ {
    		ssom += s.tb[i]
    	}
    	return ssom
    }
     
    func init00() []int {
    	var ch string
    	var tb1 []int
    	ch = "286,227,206,200,182,176,165,135,129,128,123,120,118,112,111,111,110,109,99,98,96,93,89,88,88,85,83,78,78,77,75,75,73,69,64,62,60,60,59,56,55,54,54,53,52,52,52,50,49,46,45,45,44,43,42,40,40,38,37,36,35,34,31,30,30,30,29,29,29,28,28,26,25,24,22,22,21,20,20,19,19,19,18,18,17,15,14,13,12,12,11,11,11,11,11,9,8,8,8,8,8,7,7,6,6,5,5,5,5,4,4,3,3,3"
    	stringSlice := strings.Split(ch, ",")
    	for i := 0; i < nn114; i++ {
    		j, _ := strconv.Atoi(stringSlice[i])
    		tb1 = append(tb1, j)
    	}
    	return tb1
    }
     
    func slice_remove(s []int, i int) []int {
    	s[i] = s[len(s)-1]
    	return s[:len(s)-1]
    }
     
    func f_random(tb0 []int, r *rand.Rand) solution {
    	//var tb1 []int
    	//var nn int
    	var ssol solution
    	tb1 := make([]int, len(tb0))
    	copy(tb1, tb0)
    	nntot := len(tb1)
    	for i := 0; i < nn28; i++ {
    		i1 := r.Intn(nntot)
    		ssol.tb[i] = tb1[i1]
    		tb1 = slice_remove(tb1, i1)
    		nntot = nntot - 1
    	}
    	return ssol
    }
     
    func main9(tb0 []int, r *rand.Rand) {
    	var ssol solution
    	var cpt [10000]int // la somme ne devrait jamais dépasser 10000 ... je prévois très large !
    	var Million int = 100000000
    	fmt.Println("Nouvelle simulation, nb runs=", Million)
    	for iii := 0; iii < Million; iii++ {
    		ssol = f_random(tb0, r)
    		ssum := ssol.calcule_somme()
    		cpt[ssum] = cpt[ssum] + 1
    	}
    	ss3 := 0
    	if cpt[1105] > 0 {
    		fmt.Println("Fréquence de 1105= 1/", Million/cpt[1105])
    	}
    	best_ii2 := 0
    	best0 := 0
    	mediane_vue := 0
    	stot := 0
    	for ii2 := 0; ii2 < 10000; ii2++ {
    		if cpt[ii2] > 0 {
    			ss3 += cpt[ii2]
    			stot += cpt[ii2] * ii2
    			// fmt.Println(ii2, cpt[ii2], ss3)
    			if ss3*2 > Million {
    				if mediane_vue == 0 {
    					fmt.Println(" Médiane =", ii2)
    					mediane_vue = 1
    				}
    			}
    			if cpt[ii2] > best0 {
    				best0 = cpt[ii2]
    				best_ii2 = ii2
    			}
    		}
    	}
    	fmt.Println(" Valeur modale =", best_ii2, "  fréquence= 1/", Million/best0)
    	fmt.Println(" Valeur moyenne = ", stot/Million)
    }
     
    func main() {
    	var tb0 []int
    	r := rand.New(rand.NewSource(time.Now().UnixNano()))
    	tb0 = init00()
    	for ttt := 0; ttt < 5; ttt++ {
    		main9(tb0, r)
    	}
    }
    Je lance 5 séries de 100 Millions de tirages aléatoires, et j'affiche les résultats pour chacune de ces 5 séries.
    Résultat :
    Nouvelle simulation, nb runs= 100000000
    Fréquence de 1105= 1/ 2736
    Médiane = 1523
    Valeur modale = 1517 fréquence= 1/ 617
    Valeur moyenne = 1531
    Nouvelle simulation, nb runs= 100000000
    Fréquence de 1105= 1/ 2775
    Médiane = 1523
    Valeur modale = 1503 fréquence= 1/ 616
    Valeur moyenne = 1531
    Nouvelle simulation, nb runs= 100000000
    Fréquence de 1105= 1/ 2739
    Médiane = 1523
    Valeur modale = 1509 fréquence= 1/ 617
    Valeur moyenne = 1531
    Nouvelle simulation, nb runs= 100000000
    Fréquence de 1105= 1/ 2728
    Médiane = 1523
    Valeur modale = 1521 fréquence= 1/ 618
    Valeur moyenne = 1531
    Nouvelle simulation, nb runs= 100000000
    Fréquence de 1105= 1/ 2773
    Médiane = 1523
    Valeur modale = 1508 fréquence= 1/ 618
    Valeur moyenne = 1531
    On voit que la médiane est très robuste, les 5 simulations donnent le même résultat 1523 ; la valeur modale est plus aléatoire, elle varie entre 1503 et 1521, et environ 1 tirage sur 617 donne cette valeur modale ; et pour la question initiale, il y a environ 1 tirage sur 2750 qui donne 1105.
    Le fait que la médiane soit très robuste, que la valeur modale soit plus aléatoire, c'est totalement normal, ce sont des résultats connus sur tous les phénomènes 'aléatoires'.

    Tu dis dans ton analyse : 'Il faut atteindre environ 200 millions de tirages pour que la médiane (rapidement stable) coïncide avec l'abscisse du maximum (et il y a des soubresauts).'
    Il n'y a aucune raison que la médiale et la valeur modale coïncident.
    On est dans une courbe de type 'Loi de Poisson', et pas dans une véritable Gaussienne.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  15. #35
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 482
    Points : 4 686
    Points
    4 686
    Par défaut
    Bonjour,

    Je prends 28 valeurs d'indices différents. Pour chaque tirage au sort, je vérifie s'il existe déjà dans l'ensemble des indices utilisés. Si c'est le cas, je renouvelle l'opération. L'ensemble de contrôle sert également à l'affichage de la grille des 28 valeurs (et non indices). Je travaille en UInt64 pour éviter les dépassements.

    Comme je l'ai expliqué, j'ai appelé médiane (certainement à tort) le milieu du segment rejoignant les abscisses des croisements de la courbe avec 0.6...* Hmax. Normalement cela devrait correspondre approximativement avec l'abscise du maximum de la Gaussienne. Mais celui-ci est empreint d'incertitude car sensible aux irrégularités. Je prends donc ce maximum avec son imprécision et recherche les deux croisements. Comme la pente est assez raide, cela gomme les incertitudes de base et permet d'avoir assez rapidement une bonne estimation de la valeur moyenne alors que le sommet reste assez fluctuant.

    Je ne travaille donc pas sur la médiane de l'histogramme des valeurs. De même, je ne m'intéresse qu'indirectement à la valeur modale (la valeur la + grande de l'histogramme). Par ailleurs, 10 millions est très faible par rapport au nombre de combinaisons, la tendance de la valeur modale vers la valeur moyenne ne peut alors apparaître.

    La valeur moyenne de 1531 ou 1532 était celle que j'attendais aussi, même si les 28 variables ne sont pas indépendantes. Je reste perplexe et n'ai pas (encore) trouvé d'erreur évidente.

    A dix millions (voire 1.2 G) de tirages, la distribution issue de la loi de Poisson converge très fortement vers une Gaussienne, comme beaucoup d'autres .

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  16. #36
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 145
    Points : 9 607
    Points
    9 607
    Par défaut
    Ok, je pense avoir compris la différence entre nos 2 traitements.

    Mon traitement :
    J'ai mon urne, avec 114 boules numérotées comme dit dans le 1er message.
    Je tire 28 boules, je fais la somme des 28 numéros, et j'incrémente mes statistiques.

    Ton traitement (si j'ai bien compris) :
    Tu as la même urne, les mêmes 114 boules.
    Tu tires 28 boules, tu regardes les 28 numéros. Tu regardes si parmi tous les tirages précédents, tu as déjà obtenu les mêmes 28 numéros, et si oui, tu zappes ce tirage.
    Si c'est une nouvelle combinaison, jamais rencontrée, tu incrémentes tes statistiques.

    Comme dans notre urne, on a plusieurs boules avec les petits nombres, ce sont ces combinaisons avec les petits nombres qui sont rejetées le plus souvent.
    Et du coup, plus on avance, plus la forme de la courbe change, alors que dans mon traitement, on a assez vite un image fidèle de la courbe finale.
    Je n'ai pas testé, mais les chiffres que tu annonces semblent plausibles avec ces règles.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  17. #37
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 482
    Points : 4 686
    Points
    4 686
    Par défaut
    Bonjour tbc92,

    Citation Envoyé par tbc92 Voir le message
    ...Tu tires 28 boules, tu regardes les 28 numéros. Tu regardes si parmi tous les tirages précédents, tu as déjà obtenu les mêmes 28 numéros, et si oui, tu zappes ce tirage.
    Si c'est une nouvelle combinaison, jamais rencontrée, tu incrémentes tes statistiques.
    Comme dans notre urne, on a plusieurs boules avec les petits nombres, ce sont ces combinaisons avec les petits nombres qui sont rejetées le plus souvent. Et du coup, plus on avance, plus la forme de la courbe change, alors que dans mon traitement, on a assez vite un image fidèle de la courbe finale. Je n'ai pas testé, mais les chiffres que tu annonces semblent plausibles avec ces règles.
    Ce serait une bonne et heureuse explication, mais je ne rejette pas l'intégrabilité d'une collection. Au moment où je la constitue, quand je tire un indice i pour la position n, je regarde s'il ne figure pas déjà dans la collection partielle, si oui, je fais un nouveau tirage pour cette (seule) position. Je réitère éventuellement jusqu'à trouver une place libre. Je ne crois pas que cela induise un biais.

    Je vais regarder du côté de la gestion des indices occupés si elle ne me donne pas des rejets indus (j'utilise deux mot de 64 bits pour simuler un set de 128 bits, les bits à 1 correspondent aux indices pris).

    Je te remercie de ton aide.

    Salut
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  18. #38
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 145
    Points : 9 607
    Points
    9 607
    Par défaut
    quand je tire un indice i pour la position n, je regarde s'il ne figure pas déjà dans la collection partielle, si oui, je fais un nouveau tirage pour cette (seule) position. Je réitère éventuellement jusqu'à trouver une place libre.
    i est donc un nombre entre 1 et 114 ? et n un nombre entre 1 et 28 ? Pour chacune des positions de 1 à 28, tu tires au hasard un nombre entre 1 et 114... puis tu rectifies si tu as tiré 2 fois le même nombre.

    Partage ton code, ce sera le plus efficace pour comprendre les méthodologies.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  19. #39
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 482
    Points : 4 686
    Points
    4 686
    Par défaut
    Bonjour,

    Comme souvent, l'erreur est plus simple à corriger qu'à trouver : j'affectais l'indice à l'histogramme plutôt que la valeur correspondant à l'indice .
    Une étourderie d'autant plus difficile à diagnostiquer que les résultats n'apparaissaient pas extravagants.

    J'ai ajouté un zoom sur les variations. Il est obtenu en retirant de l'histogramme une version soft (courbe rouge) de celui-ci résultant d'un filtrage dans un sens puis dans l'autre (pour neutraliser les retards). La courbe obtenue est alors très légèrement en deçà de la courbe réelle ce qui se transforme en un axe horizontal sur le zoom plus bas qu'il ne devrait mais cela ne gène en rien l'appréciation des variations.

    Image :

    Nom : Sum1102 snap 2.png
Affichages : 19
Taille : 34,0 Ko

    Programme : Sum1105.7z

    Source (pour Windows car utilise le touches virtuelles VK_...) : Sum1105 source.7z

    Cependant la déformation de la gaussienne n'est pas due à la loi mais à la distribution des données qui doivent être uniformément distribuées (val[i] = a*i + b) pour que la courbe tende vers une gaussienne pur jus ("l'expérience" avec les indices était de facto dans ce cas de figure )

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  20. #40
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 145
    Points : 9 607
    Points
    9 607
    Par défaut
    A priori, on est maintenant totalement aligné. Good.
    Je n'ai pas trouvé dans ton code la partie 'A-t-on déjà rencontré la même série de 28 nombres', mais a priori, l'impact est très marginal. On parlait au tout début de 10^20 tirages possibles, voire beaucoup plus. Si on tire 200 Millions de fois un profil parmi 10^20 profils possibles, le nombre de profils tirés plus d'une fois reste totalement marginal.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/10/2019, 17h43
  2. Combinaison de nombres dont la somme est inférieure à une valeur
    Par senacle dans le forum Algorithmes et structures de données
    Réponses: 24
    Dernier message: 29/06/2018, 15h27
  3. Défi N°1 : Génération des ensembles de nombre dont la somme est identique
    Par millie dans le forum Défis langages fonctionnels
    Réponses: 143
    Dernier message: 08/02/2018, 19h45
  4. Rechercher les nombres dont la somme est donnée
    Par TMuet dans le forum Intelligence artificielle
    Réponses: 2
    Dernier message: 17/08/2009, 18h17
  5. Réponses: 3
    Dernier message: 14/07/2006, 21h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo