50時間以内に解けるかな?③

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Koch Curve

50時間以内に解けるかな?③

#1

投稿記事 by Koch Curve » 14年前

 整数nを入力し、深さnの再帰呼び出しによって作成されるコッホ曲線の頂点の座標を出力するプログラムを作成せよ。
プログラムはC, C++, JAVA, C++11, C#, Dいずれかの言語で作成すること。

コッホ曲線はフラクタルの一種として知られている。フラクタルとは再帰的な構造を持つ図形のことであり、多くの場合再帰的な関数の呼び出しを用いて描画することができる。
コッホ曲線を描く手順は以下の通りである:

線分を引く。(図左上)
線分を3等分し、中央の線分を1辺とする正三角形を描き、下の辺を消す。(図右上)
得られた4つの線分に対して同じ操作を繰り返す。(図左下)
得られた16の線分に対して同じ操作を繰り返す。(図右下)

この操作を無限に繰り返すとコッホ曲線になる。

画像

なお、初期状態は(0, 0), (100, 0)を端点に持つ線分とする。

入力
 1つの整数nが与えられる。
出力
 コッホ曲線の各頂点の座標(x, y)を出力せよ。1行に1点出力せよ。端点の1つ(0, 0)から開始し、一方の端点(100, 0)で終えるひと続きの線分の列となる順番に出力せよ。出力は小終点4桁以下の誤差を含んでいてもよい。

制約

0 ≤ n ≤ 6

入力例 1

1

出力例 1

0.00000000 0.00000000
33.33333333 0.00000000
50.00000000 28.86751346
66.66666667 0.00000000
100.00000000 0.00000000

入力例 2

2

出力例 2

0.00000000 0.00000000
11.11111111 0.00000000
16.66666667 9.62250449
22.22222222 0.00000000
33.33333333 0.00000000
38.88888889 9.62250449
33.33333333 19.24500897
44.44444444 19.24500897
50.00000000 28.86751346
55.55555556 19.24500897
66.66666667 19.24500897
61.11111111 9.62250449
66.66666667 0.00000000
77.77777778 0.00000000
83.33333333 9.62250449
88.88888889 0.00000000
100.00000000 0.00000000

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 50時間以内に解けるかな?③

#2

投稿記事 by softya(ソフト屋) » 14年前

50時間以内に解けるかな?①が片付くまで凍結させて頂きます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る