2D座標プレーンでポイント1からポイント2に到達するためのユニークな方法の数を見つけるように求められた質問に出くわしました。
注:これは、一般性を失うことなく想定できx1 < x2
ますy1 < y2
。
さらに、モーションは次のように制限されます。右または上にしか移動できません。有効な移動がから(xa, ya)
if(xb, yb)
およびxa < xb
。であることを意味しますya < yb
。
数学的には、これはによって見つけることができます( [(x2-x1)+(y2-y1)]! ) / [(x2-x1)!] * [(y2-y1)!]
。私もコードについて考えました。
動的計画法でコーディングしたアプローチがあり、アプローチにはO([max(x2,y2)]^2)
時間がかかりTheta( x2 * y2 )
、上三角行列または下三角行列で管理できます。
実行時間がこれより短い他のアプローチを考えられますか?最小実行時間がである再帰的ソリューションを考えていますO(max(x2,y2))
。