夏休みの課題として出ました。だれか助けてください・・・ (2)が全く分かりません。理由も含めお願いします。
|
No.38292 - 2016/07/29(Fri) 15:51:44
| ☆ Re: 経路の最大得点の問題です。 / angel | | | ああ、いえ、184通り試してくれたのは、うちのパソコンなのですが…。 ( 簡単なプログラムを組んで )
逆に言えば、こういう問題って、プログラムを書いて計算するようなものだと思うんですが…。何か明確に最大値が分かるポイントがあるのか…。
一応、Ruby という言語で書いたプログラムを載せておきます。( 特にプログラミングに心得が無ければ無視してください )
W=[[[2,2,-2],[3,2,1],[1,2,-4],[-2,-1,-2]],[[6,-2,4],[5,-1,3],[-1,-3,1],[8,-2,4]]] maxc=0 f=->x,y,m,b,r{ #puts "#{?\s*r}call: #{x},#{y}" if x==3&&y==3 if b>maxc #puts "** update **" maxc=b end return end (0..3).each{|d| xn,yn=*[[x+1,y],[x,y+1],[x-1,y],[x,y-1]][d] xn>=0&&xn<4&&yn>=0&&yn<4 or next mn=m|1<<(yn*4+xn) m==mn and next w=(d<2?1:-1)*(d%2==0? W[0][y][d<2?x:xn]:W[1][x][d<2?y:yn]) f[xn,yn,mn,b+w,r+1] } } f[0,0,1,0,0] puts maxc
|
No.38303 - 2016/07/29(Fri) 22:36:48 |
|