当前位置: 代码迷 >> Eclipse >> 滑块有关问题,算法
  详细解决方案

滑块有关问题,算法

热度:60   发布时间:2016-04-23 00:26:14.0
滑块问题,求一个算法
给定一个长度为100厘米的滑杆,设滑杆一头为起点,坐标为0,另外一头为终点,坐标为100,在滑杆上有N(5 <= N <= 10)个滑块,滑块的编号i从左往右分别为0,1,...,N-1,滑块可以向左右两个方向滑动,当一个滑块与另外一个滑块发生碰撞时会立刻反方向滑动并且速度不变,滑块只能从滑杆的两头掉落,滑块的宽度不予考虑。滑块的数目及位置信息由XML输入,滑块初始位置不会重叠且两两滑块间距均大于1厘米,滑块的初始运动方向随机, 但速度均恒定为1厘米/秒,设最后一个滑块离开滑杆的时间为T,编写程序实现获取T的最小值和最大值,以及滑块可能发生碰撞的最大次数。
例如
滑块位置:8,23,45,58,69,82
最大时间:92
最小时间:45
最多碰撞次数:9

------解决方案--------------------
引用:
Quote: 引用:

1、最短时间:只要计算距离端点位置最远的那个物体的距离就可以了。
2、最长时间:根据相互碰撞后速度相反 交换后便表示直接穿过,也就是计算最长点那个距离就可以
3、最多碰撞次数:根据第二点、可以认为物品一直往同一方向前进 其它物品都会与他相撞,这样我们只要计算端点的两个物品运动过程中最多与几个物品相撞了,也就是 5+5-1(表示他们彼此相撞)=9。   


最短时间这个理解了,最长时间这个和滑块个数的奇偶有没有关系啊?


这个是没有关系的,你从速度的角度来考虑,你会发现不管他们碰撞多少次一组速度的方向与大小都是没有变的。还是以原来的方向和大小运动。所有你只要考虑最远距离就可以了。
  相关解决方案