1
votes

Comment créer une boucle «for» pour cette séquence de tableaux?

Eh bien, il est censé émuler un polynôme du nième degré. Donc, si n = 2, ce serait:

[1^k, 1^(k-1), ... 1^(k-k)]... [(k+1)^k, (k+1)^(k-1)... (k+1)^(k-k)]

Quand n = 3, ce serait:

[1^3, 1^2, 1^1, 1^0], [2^3, 2^2, 2^1, 2^0], [3^3, 3^2, 3^1, 3^0], [4^3, 4^2, 4^1, 4^0]

Donc pour n = k:

[1^2, 1^1, 1^0], [2^2, 2^1, 2^0], [3^2, 3^1, 3^0]

Merci!


6 commentaires

Bienvenue à SO! Veuillez donner plus de détails.


Je l'ai édité, faites-moi savoir si vous avez besoin de plus d'informations Merci!


votre ^ signifie-t-il une différence ou une puissance?


Qu'est-ce que tu as essayé jusque-là? MCVE


Cela signifie à la puissance de


ma réponse le fait en une seule ligne


5 Réponses :


0
votes
def arr_gen(k):
    return [[i**j for j in range(k, -1, -1)] for i in range(k+1)]

1 commentaires

Ce serait une meilleure réponse si vous expliquiez comment le code que vous avez fourni répond à la question.



0
votes

Le code ci-dessous vous aiderait.

def get_polynomial_arrays(n):
    array = []
    for base in range(1, n + 1):
        inner_array = []
        # Loop in reverse until 0
        for degree in range(n + 1, 0, -1):
            inner_array.append(base ** (degree - 1))
        array.append(inner_array)
    return array

n = 4 omets

[[1, 1, 1, 1 , 1], [16, 8, 4, 2, 1], [81, 27, 9, 3, 1], [256, 64, 16, 4, 1]]

Peut être transformé en fonction

array = []
n = 3
for base in range(1, n+1):
    inner_array = []
    # Loop in reverse until 0
    for degree in range(n+1, 0, -1):
        inner_array.append(base ** (degree - 1))
    array.append(inner_array)
print(array)


0 commentaires

0
votes

Voici comment vous pouvez le faire avec une compréhension de liste imbriquée:

a = []

for s in range(n+1):
    b = []
    for i in range(n+1):
        b.append((s+1)**(n-i))
    a.append(b)
print(a)

Sortie:

[[1, 1, 1, 1], [8, 4, 2, 1], [27, 9, 3, 1], [64, 16, 4, 1]]

Cette compréhension de liste est comme:

n = 3
a = [[(s+1)**(n-i) for i in range(n+1)] for s in range(n+1)]
print(a)


0 commentaires

0
votes

Vous pouvez également utiliser les compréhensions de listes de manière imbriquée, ce qui est plus pythonique, comme ci-dessous:

n = int(input())
poli_list = [[i**j for j in range(n,-1,-1)] for i in range(1,n+2)]
print(poli_list)


0 commentaires

0
votes
def printPolynomial(n):
    for x in range(1, n+2):
        print('[', end = '')
        for y in range(n,-1,-1):
            print(x,'^',y,end='')
            if y != 0:
                print(', ', end='')
        print(']')


printPolynomial(3)

1 commentaires

Ce serait une meilleure réponse si vous expliquiez comment le code que vous avez fourni répond à la question.