Ciao Sto cercando di ottenere i termini comuni di un elenco per semplificare per esempio se la lista che ho è:Python: Lista algebrica semplificazione
List=[['1','A1','B1','Kc','Ka'],['1','A1','B1','D2','Kc','Ka'],['-1','A1','B1','D1','Kc','Ka'],['1','A1','B1','D1','KD','Ka'],['-1','B1','D1','C1','Kc','Ka','KF'],['1','B1','D1','F1','Kc','Kz','Kl']]
v'è alcuna funzione che mi potrebbe dare come risultato :
Quello che sostanzialmente voglio fare è la riduzione algebrica.
A1 B1 Kc Ka + A1 B1 D2 Kc Ka -A1 B1 D1 Kc Ka + A1 B1 D1 KD Ka - B1 D1 C1 Kc Ka KF + B1 D1 F1 Kc Kz Kl
= A1B1 [D1 [- KcKa + KDKa] + D2KcKa + KcKa] + B1D1 [-C1 [KcKaKF] + F1 [KcKzKl]]
L'unico requisito per la semplificazione è che tutti i termini semplificati devono dipendere da una somma o resto di K. In altre parole, tutto deve essere una funzione di una combinazione lineare di K; [-KcKa + KDKa]; [KcKaKF] = [[ '- 1', 'Kc', 'Ka'], [ '+ 1', 'asciutto', 'Ka']]; ['+1', 'Kc', 'Ka', 'KF']
Provo ad usare Sympy ma il problema che ho è che i termini da ridurre provengono da un'apparecchiatura quindi non so mai quali sarebbero i simboli essere e usare sympy è necessario dichiarare i simboli. Qualche idea su come posso affrontare questo problema?
Una domanda molto interessante. Avete qualche esigenza che la soluzione sia ottimale in qualche modo o funzionerà una buona semplificazione? –
Il tuo problema non ha una soluzione unica: le sottoespressioni possono essere prese in considerazione in più di un modo equivalente. –
L'unico requisito è che tutte le semplificazioni debbano dipendere da una somma o resto di K. In altre parole, tutto deve essere una funzione di una combinazione lineare di K – user3671704