macOS Mojave , Xcode 10 , Swift 4 を使用しています。
まだ 初心者ですが、方程式を解くプログラムに困っています。
axx + b*x + c = 123456789
a*(x+1)(x+1) + b(x+1) + c = 345678912
a*(x+2)(x+2) + b(x+2) + c = 1023456789
上記、三元二次方程式のa,b,c,xを求めるプログラムを考えた場合
私は、総当たりの下記のプログラム実行しました。
略
For a in 0 ... 100000{
For b in 0 ... 100000{
For c in 0... 100000{
For x in 1 ... 1000{
y1 = axx + bx + c
y2 = a(x+1)(x+1) + b(x+1) + c
y3 = a*(x+2)(x+2) + b(x+2) + c
if y1 == 123456789 && y2 == 345678912 && y3 == 1023456789{
print(a,b,c,x)
略
で実行すると計算量が多く一日で、aの数値が100で終了しません。
行列式、並列化など本を読んでいますが高速化ができません。
何か良い方法があれば御教授下さい。
お願いします。