Voir le flux RSS

music univers

Module secret original du nombre entier à développement multiple

Noter ce billet
par , 26/02/2017 à 12h37 (271 Affichages)
Simple et concise la nappe énumérant les associations multiples :

En commençant par la littérature, je vous propose un fichier explicatif.
Pièce jointe 248443

Un aperçu du développement
Nom : nbrspecnph.PNG
Affichages : 446
Taille : 34,0 Ko

En terminant par la codification thématique du fichier exhaustif.

Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
#!/usr/bin/env python3.6
# -*- coding: utf-8 -*-
# Série première. En Général Python
# MusicAtoumic nphermier_4a Le 16 septembre 2017

Bien
L'amélioration est en cours, le sujet a encore des chances de progresser, en temps et en clarté.
J'avoue être un peu perdu ou élancé, ce qui est dû à l'effet de construction du dit programme.
Bien heureuse cette compagnie de numéros...

Code Python : 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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
 
#!/usr/bin/env python3.6
# -*- coding: utf-8 -*-
# Série première. En Général Python
# MusicAtoumic nphermier_6a Le 23 septembre 2017
import time
import copy
t = time.time()
nombre = 1054828931973877143
typ6 = nombre % 6
carre = int(nombre ** .5)
hautniveau = []
horscourse = []
""" Palier & Borne & cartyp6
Palier : Limite en plein désert
Borne : Limite en pleine forêt
Cartyp6 : Limite en plein ciel"""
palier = int(nombre ** .46)
if typ6 in (1, 5):
    cartyp6 = int(nombre ** .473)
    borne = int(nombre ** .4)
else:
    cartyp6 = int(nombre ** .35)  # 437
    borne = int(nombre ** .3)  # 36
"""Pontage niveau haut:
Définir le carré en deux lignes (1&5)
Lié au reste de la division :carre % 6:"""
carre1 = carre
if carre % 6 == 1:
    carre5 = carre1 + 4
else:
    differe = (carre % 6) - 1
    carre1 -= differe
    carre5 = carre1 + 4
"""Bas niveau des premiers:
Création du haut niveau des nombres premiers
Lié au bas niveau des nombres premiers"""
basniveau = [2, 3, 5]
for i in range(7):
    if i in basniveau and not nombre % i:
        hautniveau.append(i)
 
def compare(c):
    if not nombre % c and c <= carre:
        if c not in horscourse:
            horscourse.append(c)
        for haut in hautniveau:
            if not c % haut:
                break
        else:
            if c <= carre and c not in hautniveau:
                hautniveau.append(c)
 
"""Hauts niveaux premiers:
Chercher dans l'alignement des nombres premiers"""
for p1 in range(7, cartyp6, 6):
    p5 = p1 + 4
    # Lorsque le haut niveau n'a pas d'élément bas
    if not hautniveau:
        if not nombre % p1:
            hautniveau.append(p1)
        if not nombre % p5:
            hautniveau.append(p5)
        # Partie inverse
        if not nombre % carre1:
            hautniveau.append(carre1)
        if not nombre % carre5:
            hautniveau.append(carre5)
    # Lorsque le haut niveau a un élément bas
    else:
        if not nombre % p1 and p1 not in hautniveau:
            compare(p1)
        if not nombre % p5 and p5 not in hautniveau:
            compare(p5)
        # Partie inverse
        if not nombre % carre1 and carre1 not in hautniveau:
            compare(carre1)
        if not nombre % carre5 and carre5 not in hautniveau:
            compare(carre5)
    carre1 -= 6
    carre5 -= 6
    """Condition du palier:
        Nombres démunis en communs"""
    if p1 > palier and 2 > len(hautniveau):
        break
    """Condition de la borne:
    Nombres premiers complémentaires"""
    if p1 > borne and 1 < len(hautniveau):
        produit = 1
        hautniveau.sort()
        hautniveau.reverse()
        # Production des termes (1&5)
        # Résulte :result: de type (%6) variable
        for unit in hautniveau:
            produit *= unit
            result = nombre // produit
            if result > 1 and not nombre % result:
                if produit > carre and result not in horscourse:
                    compare(result)
                elif nombre > produit < carre:
                    compare(produit)
        else:
            """La production terminée
            Le hors course de son élément supérieur :fx_():
            Le hors course de son ensemble :ho_dv:
            """
            horscourse.sort()
            h = hh = 0
            while not hh:
                h -= 1
                fx_ip = nombre // horscourse[-1]
                fx_mu = fx_ip * min(hautniveau)
                # Condition de la partie supérieure
                if fx_mu < carre:
                    ho_dv = horscourse[h] // min(hautniveau)
                    # Et l'ensemble hors course
                    if not nombre % ho_dv:
                        if ho_dv % 6 in (1, 5):
                            compare(ho_dv)
                    # La fixation supérieure
                    if not nombre % fx_mu:
                        # Le dépassement carré ou pas
                        if fx_mu > carre:
                            if (nombre // fx_mu) % 6 in (1, 5):
                                compare(nombre // fx_mu)
                                hh = 1
                        else:
                            if fx_mu % 6 in (1, 5):
                                compare(fx_mu)
                else:
                    fx_no = fx_mu
                    # Dépassement supérieur
                    while 1:
                        fx_in = nombre // fx_no
                        if fx_in % 6 in (1, 5):
                            compare(fx_in)
                            break
                        else:
                            fx_no = fx_no * min(hautniveau)
                    hh = 1
            break
 
"""Désigne la communauté:
Les nombres premiers associés :hautniveau:
Produisent la communauté des multiples communs"""
hautniveau.append(1)
hautniveau.sort()
print('Premiers', hautniveau)
communs = copy.copy(hautniveau)
for com1 in hautniveau:
    for com2 in communs:
        produit = com1 * com2
        # Condition de recherche
        if produit > carre:
            break
        elif produit not in communs and not nombre % produit:
            communs.append(produit)
            communs.sort()
            # Ordonnance des communs
for i in communs:
    print('{} * {} typ {}*{}'.format(i, nombre // i, i % 6, (nombre // i) % 6))
print('nphermier_6a.py En:', time.time() - t)
print('', )

Envoyer le billet « Module secret original du nombre entier à développement multiple » dans le blog Viadeo Envoyer le billet « Module secret original du nombre entier à développement multiple » dans le blog Twitter Envoyer le billet « Module secret original du nombre entier à développement multiple » dans le blog Google Envoyer le billet « Module secret original du nombre entier à développement multiple » dans le blog Facebook Envoyer le billet « Module secret original du nombre entier à développement multiple » dans le blog Digg Envoyer le billet « Module secret original du nombre entier à développement multiple » dans le blog Delicious Envoyer le billet « Module secret original du nombre entier à développement multiple » dans le blog MySpace Envoyer le billet « Module secret original du nombre entier à développement multiple » dans le blog Yahoo

Mis à jour 28/09/2017 à 18h48 par toumic

Catégories
Programmation , Python

Commentaires