设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: tz-chf
打印 上一主题 下一主题

[其它] [求助]数字字段,求解一阀值。

[复制链接]
11#
 楼主| 发表于 2006-12-17 20:09:00 | 只看该作者
Y是已知的值,求n。

这样不对,公式里还有一个“处理结果的合计值”

数据放大一下就清楚了。

Y=2600

50

100

80

int(2600/40)=65,实际n=69。
12#
发表于 2006-12-17 22:05:00 | 只看该作者
Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim D As Integer
Dim E As Integer
Dim F As Integer
Dim Y As Long
  
  A = 50
  B = 100
  C = 80

Y = 2600
D = Int((Y + A + B + C) / 40)
F = Int((A + B + C) / 40) + 1

For i = F To D
  A = 50
  B = 100
  C = 80


If A > i Then
      A = i
      
   End If
   
   If B > i Then
      B = i
      
   End If

  If C > i Then
      C = i
     
   End If


If i * 40 <= (A + B + C) + Y Then

   E = i
   
   
End If

Next
Debug.Print E
13#
 楼主| 发表于 2006-12-19 01:20:00 | 只看该作者
实在是高!我改成:

If i * 40 > (A + B + C) + Y Then



   E = i-1
   exit for
   
End If

记录数是固定的49,阀值一般是10000以内,给出的值一般是200000以内。

有可能循环的次数在数百次,我设想step 100,再step -10,再step 1,找到那个阀值。等试过后再说。
14#
发表于 2006-12-19 02:14:00 | 只看该作者

123

15#
 楼主| 发表于 2007-1-1 07:06:00 | 只看该作者
F = Int((A + B + C) / 40) + 1

什么意思,应该i=0开始吧

试想如果Y=10,岂不是i=6 to 5,算出的阀值应该是0。
16#
发表于 2007-1-1 07:27:00 | 只看该作者
你说阀值间很大吧,改成下面的,不加1

F = Int((A + B + C) / 40)
17#
 楼主| 发表于 2007-1-1 19:43:00 | 只看该作者
不是加不加1的事情
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-11 06:32 , Processed in 0.093143 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表