高分求高手解决一个数学小问题

china_superman 2008-05-29 11:54:31
有一线段长度为x,另外一个长线段长度为y(y>x),但不能被x整除,x从y的左侧A点滑动到右侧B点,每秒钟滑动的距离是L(L <x),当x前面的点到达y的右侧B点时所用的时间正好是整数秒,求L的表达式

如图

¦-> x <- ¦
¦———— ¦—————————————————— ¦
A B
¦-> y <- ¦
...全文
171 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
china_superman 2008-05-30
  • 打赏
  • 举报
回复
多少秒是未知的,是整数,这个表达式是我前天做的,比较接近结果,但还不是很精确,
L=x-Math.ceil(y%x/(Math.ceil( y/x )))
这是我朋友做的,也比较接近,但都不是很精确,照结果还差一些,
L= (2xy-2x*x)/(2y-x)

大家可以计算这种情况: y=33000,是个常量,x值将在在以下数组当中选择1个(1024,1152,1280,1400,1440,1580,1600,1920,2048,2560),要求数组中的数据代进去都合适。

L要无限接近x
YH_Random 2008-05-30
  • 打赏
  • 举报
回复
楼主应该就是求的Delta增量,然后每过一个时间段(秒或毫秒)来执行一次位移,

所以
增量=(目标坐标-起始坐标)/经过的时间


L=(B-A)/N

在程序中,N可以作为参数传入,而B和A是可以确定的,所以即可求出L,
这里,L就是,每一个时间段要移动的距离,
所以,每个时间段用起始位置的坐标来加上(或减去)这个增量L,就可让目标移动


B=B+L
这样就可以更新要移动的对象的位置了。

如果用JS来描述的话,就是
function move(obj,t,startX,endX)
{
var timeoutId;
var deltaL=parseInt((endX-startX)/t); //求出增量
obj.style.left=parseInt(obj.style.left)+deltaL+"px"; //对象每次向右移一个增量位置
if(parseInt(obj.style.left)<endX) //检测是否已经移到目标位置
{
timeoutId=window.setTimeout(function(){move(obj,t,startX,endX)};,100);//这里设的100毫秒
}
else
{
window.clearTimeout(timeoutId); //清除操作
}

};
  • 打赏
  • 举报
回复
无限接近也只是在
L=(y-x)/n
这个基础上变
比如L=(y-x)/Math.ceil((y-x)/x)
maximus_zhang 2008-05-30
  • 打赏
  • 举报
回复
─────x
A┈┈┈┈┈┈┈┈┈┈┄B
──────────────y
L=(y-x)/Math.ceil((y-x)/x);


─────x
A┈┈┈┈┈┈┈┈┈┈┄B
──────────────────y

L=y/Math.ceil(y/x);

应该只有接近的
YH_Random 2008-05-29
  • 打赏
  • 举报
回复
L=(B-A)/整数秒

B-A就是滑动的整个距离

每秒跑一下X=X+L
mingxuan3000 2008-05-29
  • 打赏
  • 举报
回复

不想动脑,你这个搞个方程应该可以的吧
china_superman 2008-05-29
  • 打赏
  • 举报
回复
是在写程序过程中遇到的一个问题,抽象成数学模型就是这样的,呵呵,有解吗?
mingxuan3000 2008-05-29
  • 打赏
  • 举报
回复

完全是数学吗,怎么发到这了?
  • 打赏
  • 举报
回复
X移动的实际距离是:y-x
那么假设整数秒是n
L的表达式就为(y-x)/n
要那么复杂吗?
lawrendc 2008-05-29
  • 打赏
  • 举报
回复
这是?
china_superman 2008-05-29
  • 打赏
  • 举报
回复
忘了说一个条件了,l<x,但是要无限接近x,还有,y是常量,远远大于x。注意:多少秒未知的,只知道是整数。
jamo 2008-05-29
  • 打赏
  • 举报
回复
楼主没读过初中?
jhwcd 2008-05-29
  • 打赏
  • 举报
回复
设整数秒的时间为:s
L=(y-x)/s
  • 打赏
  • 举报
回复
X移动的实际距离是:y-x
那么假设整数秒是n
L的表达式就为(y-x)/n
jayflee 2008-05-29
  • 打赏
  • 举报
回复

L=(y-x)/i (i=1,2,3,4.........)( L<x ); 求出合适的L值。

如果L也必需是整数的话,i就有限制(i<=y-x),否则i可以无限增长。
yuanwen813 2008-05-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yuanwen813 的回复:]
JScript code
var juli=y-x;
var L=0;
var jieguo="";
for(var i=1;i++){
if(juli%i==0){
L=juli/i;
if(L<x){
jieguo+=","+L;
}
}
}
[/Quote]
if(x%L!=0){
yuanwen813 2008-05-29
  • 打赏
  • 举报
回复

var juli=y-x;
var L=0;
var jieguo="";
for(var i=1;i++){
if(juli%i==0){
L=juli/i;
if(L<x){
if(x%L!=0){
jieguo+=","+L;
}
}
}
}
lfywy 2008-05-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ljqsky 的回复:]
Y减去X 取X的余 等于 0

(Y-X)%L=0
[/Quote]
支持,楼主要L=。。。但是你的时间秒数不知道怎么能有等式来求呢?你数学等式不知道吗?
china_superman 2008-05-29
  • 打赏
  • 举报
回复
楼上仁兄,我是求L的表达式,也就是L=。。。。
ljqsky 2008-05-29
  • 打赏
  • 举报
回复
Y减去X 取X的余 等于 0

(Y-X)%L=0
加载更多回复(1)

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧