Bonjour, sur CALC comment générer toutes les combinaisons possibles d’une liste de 8 numéros sur la base de 5 numéros à chaque fois. ex: 123456,123457, 123458 etc…
Merci par avance. Bien cordialement.
En regardant bien, tes exemples ont une longueur de 6 chiffres et non de 5 ?
Est-ce que tu veux quelque chose comme ça:
'123456',
'123457',
'123458',
'123467',
'123468',
'123478',
'123567',
'123568',
'123578',
'123678',
'124567',
'124568',
'124578',
'124678',
'125678',
'134567',
'134568',
'134578',
'134678',
'135678',
'145678',
'234567',
'234568',
'234578',
'234678',
'235678',
'245678',
'345678'
from itertools import combinations as combi
def create_combinations(*_):
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.Sheets[0] #first sheet
data = tuple(("".join(map(str,c)),) for c in combi(range(1,9),6))
sheet[:len(data), 0].DataArray = data
oui c’est bien ça mais sur 5 chiffres (je me suis effectivement trompé en en présentant 6).
from itertools import combinations as combi
def create_combinations(*_):
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.Sheets[0] #first sheet
data = tuple(("".join(map(str,c)),) for c in combi(range(1,9), 5 ))
sheet[:len(data), 0].DataArray = data
merci pour l’info, mais n’étant pas développeur, juste un simple utilisateur lambda de CALC je n’ai aucune idée de la façon d’utiliser ce que tu me proposes. Y aurait-il une fonction standard?
non il n’y a pas de fonction standard, mais tu peux utiliser apso.oxt pour gérer tes scripts python.
merci beaucoup et bonne journée. Jacques
Un peu simplifié, et plus facile à comprendre:
from itertools import combinations as combi
def create_combinations(*_):
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.Sheets[0] #first sheet
data = tuple(("".join(c),) for c in combi("12345678", 5 ))
sheet[f"A1:A{ len(data) }"].DataArray = data
au hasard via google … Calcul de Combinaison - K Parmi N - Générateur en Ligne
par contre gemini est un peu borné
mais en négociant, on y arrive
bonne idée. Merci.
Bonjour,
Tu peux regarder avec la fonction ALEA.ENTRE.BORNES(ninimum;maximum).
Attention si tu ne veux pas que tes nombres soient recalculés, il faut ensuite faire un copier, coller les valeurs.
Claude