Я хочу решить следующую проблему в Haskell:
Пусть n будет натуральным числом, а A = [d_1 , ..., d_r]
будет набором положительных чисел.
Я хочу найти все положительные решения следующего уравнения:
n = Sum d_i^2 x_i
.
Например, если n= 12
и набор A= [1,2,3]
. Я хотел бы решить следующее уравнение над натуральными числами:
x+4y+9z=12.
Достаточно использовать следующий код:
[(x,y,z) | x<-[0..12], y<-[0..12], z<-[0..12], x+4*y+9*z==12]
Моя проблема в том, что если n не фиксировано, а также набор A не фиксирован. Я не знаю, как «создать» определенное количество переменных, индексированных набором A.
[(x,y,z,n) |n<-[0..12], x<-[0..3], y<-[0..3], z<-[0..3], x+4*y+9*z==n ]
или[(x,y,z,n) |n<-[0..12], x<-[0..n], y<-[0..n], z<-[0..n], x+4*y+9*z==n ]
? - person nobody   schedule 04.05.2016