我正在开发一个小型的共享网站,人们可以使用谷歌地图API(纬度和经度)创建中途停留路线。
我可以在给定路线上创建所有可能的组合(包括中途停留),如下面的答案:
(Java) Find all possible pairs in an array
示例:如果从A到D的旅程有2次中途停留(B和C),那么将有6次可能的“旅程”:
当一名乘客在某段旅程中预订座位时,根据他们在“金字塔”中的位置,其他一些旅程也会预订座位。
在任何特定行程中预订座位时,我都没有找到一种方法来以编程方式确定哪些行程会受到影响。
我发现的最接近的想法是来自phpjabbers的公共汽车预订脚本和这个SO答案: Database design for bus reservation 但是,这两个解决方案已经存储在数据库中的城市/停靠点,而在“我的”解决方案中,停靠点始终是动态的(使用谷歌地图API)。
到目前为止,我已经尝试过:
我不是以正确的方式解决问题(当然)但我不确定这个问题是否与数学,算法或其他任何问题有关。请原谅我。
我想了解如何解决这个问题:公式,算法,一些基本代码或其他。
编辑:
为了更好地解释问题,这将是一个典型的情况:
从谷歌地图api中选择四个点或城市(A,B,C,D),因此它们不会存储在本地。每个点的纬度和经度都“附着”在游乐设施上。
乘客Z预订最长的座位(#1)。现在所有的游乐设施都只有两个座位。很容易。
乘客Y预定乘坐#6(从C到D)的座位。现在,#1,#3和#6游乐设施减少了一个座位(2个占用,1个可用)。
乘客X预定乘坐#2(从A到C)的座位。 这就是它变得复杂的地方。现在游乐设施#2,#4和#5有一个座位少(1个占用,2个可用),同样适用于#3(2个占用,1个可用)。
此时即使有3名乘客预订了“次乘车”座位,乘坐#1仍有1个座位(见上文第3点)。这是我的问题,我不知道如何确定乘客X(第4点)的预订不能修改#1号车。