私は画像の勉強をしています。それで従来の水平スキャンではなく2次元相関をたもったまま1次元配列に変換できるヒルベルトスキャンとBWT変換とエントロピー符号化を用いて圧縮する方法を勉強しています。しかしヒルベルトのほうができなくて困っています。
プログラムの実行結果でヒルベルト曲線通る座標を示すプログラムを教えてください。だいたいは書けましたがうまくいきません。プログラムは
#include<stdio.h>
int x,y;
main() {
int n;
void RUL(int n),DLU(int n),LDR(int n),URD(int,n);
scanf("%d",&n);
printf("#位相%dのヒルベルト曲線\n",n);
x=0; y=0;printf("%d\n",x,y);
RUL(n);printf("\n");
}
void RUL(int n) {
if(n<=0) {return;}
URD(n-1);x=x+1;printf("%d %d\n",x,y);
RUL(n-1);y=y+1;printf("%d %d\n",x,y);
RUL(n-1);x=x-1;printf("%d %d\n",x,y);
DLU(n-1);
}
void DLU(int n) {
if(n<=0) {return;}
LDR(n-1);y=y-1;printf("%d %d\n",x,y);
DLU(n-1);x=x-1;printf("%d %d\n",x,y);
DLU(n-1);y=y+1;printf("%d %d\n",x,y);
RUL(n-1);
}
void LDR(int n) {
if(n<=0) {return;}
DLU(n-1);x=x-1;printf("%d %d\n",x,y);
LDR(n-1);y=y-1;printf("%d %d\n",x,y);
LDR(n-1);x=x+1;printf("%d %d\n",x,y);
URD(n-1);
}
void URD(int n) {
if(n<=0) {return;}
RUL(n-1);y=y+1;printf("%d %d\n",x,y);
URD(n-1);x=x+1;printf("%d %d\n",x,y);
URD(n-1);y=y-1;printf("%d %d\n",x,y);
LDR(n-1);
}
です。それをBWT変換とエントロピー符号にかけ圧縮させその圧縮率を求めその後画像はちゃんと戻るかを調べるために復元のプログラムを書かないいけませんがそのプログラムがわかりません。教えてください。
No.2ベストアンサー
- 回答日時:
#1補足<
このプログラム自体をよく理解していないので
プログラムの動作について自信をもって言えないのですが、
深さ(n)で再帰的に処理するんですよね。
それぞれで、x,yを保持していないといけないのではなどと思ってしまいました。
とりあえず、windowsでは、期待したように今のプログラムは(座標を表示する部分)正しく動作するんですね。?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングペーパーテスト 次の問題の実行結果を答えろ #include int x[ ] = { 1 2022/06/16 21:49
- C言語・C++・C# プログラミングの授業のペーパーテスト 実行結果を答えろ #include int x[ ] = {1 3 2022/06/16 20:08
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# プログラムの時、フローチャートはどうなりますか?図でお願いします。 int main(void) { 1 2022/10/01 22:45
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
strcmp
-
【C言語教えてください】sin波...
-
球の体積と表面積を表示するプ...
-
cshの文字列操作(0埋め)
-
10個出力で改行したいのですが...
-
ifなんですが
-
printf で二進表示を行いたい。
-
関数について
-
円の面積を求めるプログラミン...
-
Visual Sutdio 2017 でのC言語...
-
コマンドプロンプトがすぐ消える
-
C言語の配列問題について
-
c言語 成績表示のプログラムで...
-
(C言語)西暦年月日を入力して...
-
printfの出力内の文字をdefine...
-
コンパイルエラーについて
-
C言語で五目並べを作成している...
-
%P と %X の違い
-
2つ分数の四則演算を行うプロ...
-
hit&bolwのプログラミングがで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
printf で二進表示を行いたい。
-
【C言語教えてください】sin波...
-
strcmp
-
コンパイルエラーについて
-
c言語でAからZまでを表示する...
-
コマンドラインに出力した文字...
-
cshの文字列操作(0埋め)
-
4の倍数を論理演算で表す。。
-
C言語 プログラミング
-
%P と %X の違い
-
8人分のテストの点数を入力し、...
-
C言語での、年複利の計算方法...
-
printf( " %2d", p * q );
-
hit&bolwのプログラミングがで...
-
scanfに文字が入力されたときに...
-
error C2143: 構文エラー : ';'...
-
printfの出力内の文字をdefine...
-
テキストカーソル位置の取得
-
unsigned int型について
おすすめ情報