5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

プログラム書いて!

1 :名無しさん@1周年:2001/07/26(木) 05:28
(0,0)から(100,100)までの格子があって
(a,b)=1 なら通れる
(a,b)≠1 なら通れない
この時(0,0)から(100,100)までに通る格子点を出力する
同じ格子点は一回しか通れないとする
プログラムをC言語で書いて欲しいのです
考え方だけでも教えて!!

2 :名無しさん@1周年:2001/07/26(木) 10:48
また、宿題か・・・
どうでも良いが、何が通れるんだよ?
Cもいいが日本語を勉強しなさい。

3 :名無しさん@1周年:2001/07/26(木) 12:31
迷路脱出でしょ。再帰による全経路算出。

4 :名無しさん@1周年:2001/07/26(木) 12:32
αβ枝刈り

5 :おもしろそうだったので・・・:2001/07/27(金) 14:07
問題が良く分からないのだが、
「与えられた格子の任意の二点間の最短距離(1ノルム)を求め、その経路を示せ」
と解釈して、その解を出力するプログラムなら書けたよ。

ソースは改行が多すぎて一度に書き込めない・・・

6 :名無しさん@1周年:2001/07/27(金) 23:52
(0,0)から(100,100)までの格子があって
それぞれの格子点(a,b)に対して配列A[a][b]=1or0という値が与えられていて
A[a][b]=1なら(a,b)は通過可能
A[a][b]=0なら(a,b)は通過不可能
とする.この時(0,0)から(100,100)まで進むときに通過する格子点を表示する
同じ格子点は一回しか通れない.また(100,100)まで行けないときは行けないと表示する
このプログラムをCでお願いします
不備があったらすみません 結構書けそうで書けないので困っています・・・・

7 :名無しさん@1周年:2001/07/27(金) 23:59
ルートが複数あったらどうすんの?
>>5が「最短」って言うとるけど?

8 :名無しさん@1周年:2001/07/28(土) 00:34
たしか、そういうのって、0のノードに接続されているリンクはすべて
消してから、(0、0)と(100,100)をもって、左右にひっぱったときに、
ピンと張ったリンク群が最短経路になる。。。
っていう方法でプログラミングすればよかったのでわ?(藁

9 :1=6:2001/07/28(土) 00:51
ええとルートは最短でなくともかまいません
1通りでもルートが表示できればいいです
最短にすると自分の力では書ける気がしません・・・・

10 :5:2001/07/28(土) 01:01
距離と道のりの区別もつかない厨房です。(陳謝

簡単のために 10x10 で設計しましたが・・・
最短の道のりを持つ経路が複数ある場合すべてを出力するようにしました。

 こういう問題は、Level Set Method の得意種目なのです。
わしの読みにくいへたれプログラムを出してもいいけれど、
Sehian 先生のページを見にいって楽しむと勉強になるでしょう。
いろいろ面白い研究されてます。

http://www.math.berkeley.edu/~sethian/level_set.html

11 :1=6:2001/07/28(土) 01:03
>>10
ありがとうごぜぇ〜ます!
感謝!です

12 :名無しさん@1周年:2001/07/28(土) 01:11
よくある迷路を抜ける方法でやってみればだめなん?
右手を壁につけて離さないで進めばいつかでられる。、、ってやつ。

進行方向コードみたいなのを決めるとかして
右に進むを1、下に進むを2、左に進むを3、上に進むを4みたいな。
壁に右手をつけたまま。・。。っつうとこをうまく考えればなんとか
なりそうじゃんよ。
ちなみに、100×100の格子とやらは、102×102にしておいて
回りを0(通過不可)にしておく方が楽かも。

13 :名無しさん@1周年:2001/07/28(土) 09:51
プログラム側で番兵置かなくていいってことか

14 :12:2001/07/28(土) 10:06
>>13
そそ。
再帰とか使えばもっとかっこええんやろが
俺様は頭が悪くってのう(藁

15 :名無しさん@1周年:2001/07/28(土) 22:13
>>14
んー、でも、番兵もしらんような奴もいるしー

16 :名無しさん@1周年:2001/07/28(土) 22:20
どーせなら、竜牙兵を配置すべし。

17 :@:2001/08/01(水) 16:24
ひまだったのでポストスクリプトの出力付プログラムを作ってみた。
結果(PSファイル)は標準出力に出でくる。乱数を使って配列Aの値を
きめてるが、FACTORの値を大きくすると通れる点が増える。時間をseed
にしているので、実行のたびに結果は変わる。

18 :A(ヘッダー):2001/08/01(水) 16:25
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define ISIZE 100
#define JSIZE 100
#define FACTOR 5

int A[ISIZE][JSIZE];

19 :B(処理本体):2001/08/01(水) 16:26
int next(int pi, int pj, int i, int j)
{
A[i][j] = 0;

if (i == 0 && j == 0 ||
pi != i + 1 && i < ISIZE - 1 && A[i + 1][j] && next(i, j, i + 1, j) ||
pi != i - 1 && i > 0 && A[i - 1][j] && next(i, j, i - 1, j) ||
pj != j + 1 && j < JSIZE - 1 && A[i][j + 1] && next(i, j, i, j + 1) ||
pj != j - 1 && j > 0 && A[i][j - 1] && next(i, j, i, j - 1))
return printf("%d %d moveto %d %d lineto stroke\n", pi, pj, i, j);

return 0;
}

20 :C(メイン):2001/08/01(水) 16:27
main(void)
{
int i, j;
int scale = 500 / ISIZE;

srand((int)time(NULL));

printf("%!PS\n");
printf("50 50 translate\n");
printf("%d %d scale\n", scale, scale);
printf("0 setlinewidth\n");
for (i = 0; i < ISIZE; i++)
printf("%d %d moveto %d %d lineto stroke\n", i, 0, i, JSIZE - 1);
for (j = 0; j < JSIZE; j++)
printf("%d %d moveto %d %d lineto stroke\n", 0, j, ISIZE - 1, j);


for (i = 0; i < ISIZE; i++)
for (j = 0; j < JSIZE; j++)
A[i][j] = (random() > RAND_MAX / FACTOR);

A[0][0] = 1;
A[ISIZE - 1][JSIZE - 1] = 1;

for (i = 0; i < ISIZE; i++)
for (j = 0; j < JSIZE; j++)
if (!A[i][j])
printf("%d %d 2 %d div 0 360 arc stroke\n", i, j, scale);

printf("1 %d div setlinewidth\n", scale);
next(ISIZE - 1, JSIZE - 1, ISIZE - 1, JSIZE - 1);
printf("showpage\n");
}

21 :名無しさん@1周年:02/05/09 00:01
     ξ
   / ̄\
   / ´∀`)
 ⊂     ⊃
  (  土 |  
 /⊂   曜⊃
/ /     
 ̄    


22 :名無しさん:03/01/03 01:06
            / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
Λ_Λ  | 君さぁ こんなスレッド立てるから          |
( ´∀`)< 厨房って言われちゃうんだよ             |
( ΛΛ つ >―――――――――――――――――――‐<
 ( ゚Д゚) < おまえのことを必要としてる奴なんて         |
 /つつ  | いないんだからさっさと回線切って首吊れ     |
       \____________________/

(-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ…
(∩∩) (∩∩) (∩∩)

(-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ…
(∩∩) (∩∩) (∩∩)

(-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ…
(∩∩) (∩∩) (∩∩)


23 :山崎渉:03/01/11 05:21
(^^)

24 :山崎渉:03/04/17 09:18
(^^)

25 :山崎渉:03/04/20 04:02
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

26 :山崎渉:03/05/21 22:03
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

27 :山崎渉:03/05/21 23:26
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

28 :山崎渉:03/05/28 14:30
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

29 :山崎 渉:03/07/12 12:35

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

30 :山崎 渉:03/07/15 12:47

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

31 :山崎 渉:03/08/02 02:30
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

32 :ぼるじょあ ◆yBEncckFOU :03/08/02 03:06
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ

33 :33:03/08/04 23:31
33げとずざ

34 :山崎 渉:03/08/15 18:31
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

35 :名無しさん@3周年:04/07/14 01:03
ねるぽー

36 :fortran77:04/07/20 04:36
課題が出されましたが、まったくわかりません・・
どなたか教えていただけますでしょうか?(fortran77です)
X**2+Y**2=81
Y=X・tanX
Xの範囲は0<X<π/2
Xの値を凾w=0.01のステップで0から次々に増加させ、各々の
Xの値と、両式から得られるYの値を表としてファイルへ出力せよ。

この連立方程式からYを消去して得られる方程式の解を、2分法により
少数第6桁までで、求めよ。

37 :名無しさん@3周年:04/07/20 09:55
>>36
   PROGRAM HOGE
   STOP 'Xが有効な範囲を超えました.'
   END

38 :fortran77:04/07/20 11:30
えっと、、下から3,4行目の方法でこの連立方程式を
解けという問題です。


39 :fortran77:04/07/20 11:31
後、訂正です
課題が出されましたが、まったくわかりません・・
どなたか教えていただけますでしょうか?(fortran77です)
X**2+Y**2=4
Y=X・tanX
Xの範囲は0<X<π/2
Xの値を凾w=0.01のステップで0から次々に増加させ、各々の
Xの値と、両式から得られるYの値を表としてファイルへ出力せよ。

この連立方程式からYを消去して得られる方程式の解を、2分法により
少数第6桁までで、求めよ。

40 :名無しさん@3周年:04/07/20 19:24
>>39
> Xの値を…ファイルへ出力せよ。
(1) ファイルを開く。
(2) 「Xの値を凾w=0.01のステップで0から次々に増加させ」るループを考える。
(3) (2)でつくったループの中に以下の処理を書き加える。
(3-1) Xの値が与えられたとき、「X**2+Y**2=4」からYの値を求める式を考えて
    この時のY(X)の値を求める。
(3-2) 同様に「Y=X・tanX」からY(X)を求める。
(3-3) Xの値と(3-1)、(3-2)で求めた値をファイルに書き込む。
(3-4) (ループ終わり)
(4) ファイルを閉じる。

> この連立方程式から…求めよ。
ttp://www.google.co.jp/search?hl=ja&ie=UTF-8&q=%EF%BC%92%E5%88%86%E6%B3%95+FORTRAN&lr=lang_ja
> 2分法 FORTRAN の検索結果のうち 日本語のページ 約 6,310 件
お好みのものを使って下さい。


41 :fortran77:04/07/24 08:44
ありがとうございます。しかし、なかなかうまくいきません。
お手数ですが、書いてみてはもらえないでしょうか?


42 :名無しさん@3周年:04/10/23 08:28:26
#include<stdio.h>
#include<math.h>

int main()
{
float x,y1,y2;
for(x=-2;x<=2;x=x+0.01)
{
y1=sqrt(4-x*x);
y2=x+tan(x);
if(abs(y1-y2)<0.01)
{
printf("x=%fは解",x);
}
printf("x=%f y=%f\n",x,y1,y2);

}
return 0;
}

43 :名無しさん@5周年:2005/11/17(木) 22:04:22
   __、,_
 ,.' ノ7ヾ、
 彡ツノ)^ゝ    
´、(i´,ー`リ  「プログラム」
 くア]_[アl>
  | 〒ム     「書いてみたよーww」
  し' `J

44 :名無しさん@5周年:2005/12/15(木) 21:25:53
   __、,_
 ,.' ノ7ヾ、
 彡ツノ)^ゝ 
´、(i´,ー`リ 「>>43誤爆乙」 
 くア]_[アl>
  | 〒ム
  し' `J

45 :名無しさん@5周年:2006/01/14(土) 22:52:55
   __、,_
 ,.' ノ7ヾ、
 彡ツノ)^ゝ 
´、(i´,ー`リ 「誤爆じゃないよ!」 
 くア]_[アl>
  | 〒ム
  し' `J

46 :名無しさん@5周年:2006/02/16(木) 17:44:14
**ってわからん

47 :名無しさん@5周年:2006/02/18(土) 13:52:22
文字列配列だったり

13 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)