代数曲線は{(x,y) in R^2 : f(x,y)=0 }
、多項式のゼロのセットとして記述できる「2D平面」の特定の「1Dサブセット」ですf
。ここでは、2D平面を実際の平面と見なし、R^2
そのような曲線がどのように見えるかを簡単に想像できるようにします。基本的には鉛筆で描くことができます。
例:
0 = x^2 + y^2 -1
半径1の円0 = x^2 + 2y^2 -1
楕円0 = xy
十字形状、基本的にx軸の組合とy軸0 = y^2 - x
放物線0 = y^2 - (x^3 - x + 1)
楕円曲線0 = x^3 + y^3 - 3xy
デカルトの葉0 = x^4 - (x^2 - y^2)
レムニスケート0 = (x^2 + y^2)^2 - (x^3 - 3xy^2)
トリフォリウム0 = (x^2 + y^2 - 1)^3 + 27x^2y^2
アストロイド
仕事
多項式f
(以下で定義)およびx / y範囲が与えられた場合、少なくとも100x100ピクセルの白黒画像を出力します。この画像は、白い背景に黒い線として曲線を示します。
詳細
色:選択した他の2色を使用できます。区別するのは簡単です。
プロット:ピクセル画像の代わりに、この画像をascii-artとして出力することもできます。背景の「ピクセル」はスペース/下線または「空に見える」他の文字で、行は「以下のような「フルM
またはX
か#
。
エイリアシングについて心配する必要はありません。
あなただけの他のラインの片側から多項式の変化の符号が(手段は、あなたが例えば行進乗アルゴリズムを使用することができること)、あなたは正しくような「病的な例をプロットする必要はありませんプロットラインに必要な0 = x^2
サインがないところを線の一方の側から他方の側に移動しても変化しませんが、線は連続し、の異なる符号の領域を分離する必要がありf(x,y)
ます。
多項式:多項式は(m+1) x (n+1)
、(実)係数のリストの行列/リストとして与えられます。以下の例では、係数の項はその位置で与えられます:
[ 1 * 1, 1 * x, 1 * x^2, 1 * x^3, ... , 1 * x^n ]
[ y * 1, y * x, y * x^2, y * x^4, ... , y * x^n ]
[ ... , ... , ... , ... , ... , ... ]
[ y^m * 1, y^m * x, y^m * x^2, y^m * x^3 , ..., y^m * x^n]
必要に応じて、マトリックスは正方であると想定できます(必要なゼロパディングで常に実行できます)。また、必要に応じて、マトリックスのサイズが追加の入力として与えられると想定することもできます。
以下では、上記の例は、このように定義されたマトリックスとして表されます。
Circle: Ellipse: Parabola: Cross: Elliptic Curve: e.t.c
[-1, 0, 1] [-1, 0, 1] [ 0,-1] [ 0, 0] [-1, 1, 0,-1]
[ 0, 0, 0] [ 0, 0, 0] [ 0, 0] [ 0, 1] [ 0, 0, 0, 0]
[ 1, 0, 0] [ 2, 0, 0] [ 1, 0] [ 1, 0, 0, 0]
x範囲/ y範囲のテストケース:
(ここではpastebinにありますが、それほど読みやすくはありませんが、コピーと貼り付けが可能な形式です。)
Circle:
[-1, 0, 1] [-2,2] [-2,2]
[ 0, 0, 0]
[ 1, 0, 0]
Ellipse:
[-1, 0, 1] [-2,2] [-1,1]
[ 0, 0, 0]
[ 2, 0, 0]
Cross:
[ 0, 0] [-1,2] [-2,1]
[ 0, 1]
Parabola:
[ 0,-1] [-1,3] [-2,2]
[ 0, 0]
[ 1, 0]
Elliptic Curve:
[-1, 1, 0,-1] [-2,2] [-3,3]
[ 0, 0, 0, 0]
[ 1, 0, 0, 0]
Folium of Descartes:
[ 0, 0, 0, 1] [-3,3] [-3,3]
[ 0, -3, 0, 0]
[ 0, 0, 0, 0]
[ 1, 0, 0, 0]
Lemniscate:
[ 0, 0, -1, 0, 1] [-2,2] [-1,1]
[ 0, 0, 0, 0, 0]
[ 1, 0, 0, 0, 0]
Trifolium:
[ 0, 0, 0,-1, 1] [-1,1] [-1,1]
[ 0, 0, 0, 0, 0]
[ 0, 3, 2, 0, 0]
[ 0, 0, 0, 0, 0]
[ 1, 0, 0, 0, 0]
Astroid:
[ -1, 0, 3, 0, -3, 0, 1] [-1,1] [-1,1]
[ 0, 0, 0, 0, 0, 0, 0]
[ 3, 0, 21, 0, 3, 0, 0]
[ 0, 0, 0, 0, 0, 0, 0]
[ -3, 0, 3, 0, 0, 0, 0]
[ 0, 0, 0, 0, 0, 0, 0]
[ 1, 0, 0, 0, 0, 0, 0]
m
x n
ではなく(m+1)
x (n+1)
です。入力として何を取りますか:m, n
または m+1,n+1
または選択できますか?