hbqpy.net
当前位置:首页>>关于过河问题算法的资料>>

过河问题算法

paddy102的专栏CSDNBlog | 我的首页 | 联系作者 | 聚合 | 登录 5篇文章 :: 0篇收藏:: 0篇评论:: 0个Trackbacks 文章C++/Visual C++(RSS)算法设计(RSS)游戏开发(RSS)收藏相册存档2004年06月(4)2004年04月(1)野人过河问题算

procedure p(mArr: array of string; mStrings: TStrings);var I, J: Integer; T: string; S: string;begin mStrings.Clear; T ''; for I Low(mArr) to High(mArr) do if mArr <> '' then begin T T + mArr ; S S + mArr ; end else Exit; while T <> S do begin mStrings.Add(T

假设河宽为L,水速为v0,船速为v1、过河最短时间==L/v (过河时间与垂直于河岸的速度大小有关,即要使垂直于河岸的速度最大)2、合速度^2==船速^2+水速^23、以最短位移过河的最短时间当v>v0时,则t==L/(v^2-v0^2)^(1/2) (即垂直河岸过)当v≤v0时,船无法垂直于河岸过河,此时应使船速垂直于合速度,那么垂直于河岸的速度v2==(v/v0)(v0^2-v^2)^(1/2) ∴t==L/v2==(v0/v)L/(v0^2-v^2)^(1/2)

1.过河时间最短就是在河宽方向上速度最大,船直接朝对岸划就行了,t=d/v2 2.过河距离最短就是船的行驶方向是河宽方向,即合速度方向 合速度v=v2的平方减去v1的平方再开方,t=d/v

先运羊到对岸去,然后空船回来,再运狼到对岸去,再将羊装上,载回去,将白菜运过去,现在对岸只有狼和白菜,现在空船回去,将羊再运过河去就行了.

幼稚:先2只羊,在一只羊一只狼,然后两只狼…

以最短时间过河,如图2所示.已知河岸宽度d一定,船速v船一定,要以最短时间过河,必须满足船行驶时,垂直于河岸的分速度有最大值,因此船头应垂直河岸行驶,即保持v船垂直于河岸,此时时间最短,时间t=d/v船. 以最短航程过河,如图1所示.要满足航程最短,则必须满足船的运动轨迹始终垂直于河岸,因此合速度应垂直于河岸,此时航程最短,航程为河岸宽度d.

/* 用队列解决农夫过河问题的算法*/ #include<stdio.h>#include<stdlib.h> #define MAXNUM 20 typedef int DataType;struct SeqQueue { /* 顺序队列类型定义 */ int f, r; DataType q[MAXNUM];}; typedef struct SeqQueue *PSeqQueue; /* 顺序队列类型

这个你看看吧,就是太麻烦了#include <stdlib.h> struct node /*建立一个类似栈的数据结构并且可以浏览每一个数据点*/ { int x; int y; int state; struct node *next; }; typedef struct node state; typedef state *link; link PPointer1=NULL; link PPointer2=

过河问题啊,很简单啊,最短位移就是最终的行驶路程最短.路程最短就是两岸的直线最短嘛,但是由于有河流的流向速度所以船头不会是沿着这条线上.而最短时间,就是从一边的河岸到另一边的河岸所用的时间最短.所以啊,船头沿着对岸是最短啊.因为船头速度沿着对岸,船头速度与过河位移在同一方向上,所以时间最短.简单的来说,最短位移就是船最终行驶的位移要最短,最短时间的要求就是船速和两河间距在同一方向上.因为水流的速度不影响时间,但是影响船的最终位移.因为时间是由两河间距和水平速度决定的.

eonnetwork.net | jmfs.net | 9647.net | sytn.net | xmjp.net | 网站首页 | 网站地图
All rights reserved Powered by www.hbqpy.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com