| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 909 人关注过本帖
标题:有数组0-100,A/B*C/D=a<是个常数>,根据常数a在数组0-100中选择满足A/B*C/ ...
只看楼主 加入收藏
hulusizyd
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-4-23
结帖率:0
收藏
已结贴  问题点数:20 回复次数:12 
有数组0-100,A/B*C/D=a<是个常数>,根据常数a在数组0-100中选择满足A/B*C/D,要非常接近常数a,误差在0.0005以内,各位
各位大侠,求VB代码,谢谢
2015-04-23 13:08
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:20 
作业?
自己多试着做,能够完成。

[ 本帖最后由 lianyicq 于 2015-4-23 13:55 编辑 ]

大开眼界
2015-04-23 13:36
hulusizyd
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-4-23
收藏
得分:0 
不是作业,我在编个齿轮程序,挂轮值求出来了。根据挂轮值选择挂轮,用到这个程序,求高手指点,谢谢
2015-04-23 14:12
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 3楼 hulusizyd
很基础的
For i = 0 To 100
  If Abs(table(i) - a) < 0.0005 Then
     Debug.Print i
     Exit For
  End If
Next

满足要求,自己考虑找最接近a的。

大开眼界
2015-04-23 14:55
hulusizyd
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-4-23
收藏
得分:0 
谢谢,是要求A/B*C/D,比如根据常数选择了四个数,然后输出,比如:45/36*75/68
2015-04-23 15:40
hulusizyd
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-4-23
收藏
得分:0 
谢谢,是要求A/B*C/D,比如根据常数选择了四个数,然后输出,比如:45/36*75/68
2015-04-23 16:00
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 6楼 hulusizyd
根据已知的a,选择四个数A,B,C,D使得A/B*C/D-a在正负0.0005以内?
越看越糊涂,举个例吧。

大开眼界
2015-04-23 16:08
hulusizyd
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-4-23
收藏
得分:0 
比如A/B*C/D=0.53,ABCD分别从1-100选择实数(整数),然后程序自由组合选择,比如最终结果出择为A为38,B为73,C为86,D为57,然后输出(38/73)*(86/57)
2015-04-23 16:30
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:737
专家分:3488
注 册:2013-1-26
收藏
得分:0 
回复 8楼 hulusizyd
比较10的8次方次
k = 0.53
For a = 1 To 100
For b = 1 To 100
For c = 1 To 100
For d = 1 To 100
  If Abs(a / b * c / d - k) < 0.0005 Then Debug.Print a & "/" & b & "*" & c & "/" & d & "=" & a / b * c / d
Next
Next
Next
Next
注意a/b*c/d取值范围是0.0001至10000。a值最小是0.0001-0.0005,最大是10000.0005。
由(a/b*c/d)<k±e (e是误差)可推得a的取值范围,再考虑a为1至100。可以减小a的取值区间,减少比较次数。

[ 本帖最后由 lianyicq 于 2015-4-23 17:14 编辑 ]

大开眼界
2015-04-23 16:45
hulusizyd
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-4-23
收藏
得分:0 
非常感谢大侠!谢谢,辛苦了!
2015-04-23 21:29
快速回复:有数组0-100,A/B*C/D=a<是个常数>,根据常数a在数组0-100中选择满足A ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015277 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved