我想制定一个公式,用于以下场景的基本代码中。
d = distance
bw = block width
mw = mortar width
b = number of blocks
如果每个块之间都有砂浆,但最后一个块的末端可能有也可能没有砂浆,则 d 中有多少个块 b(或其分数)。
使用公式 b = d / (bw + mw) 的场景
d = 480
bw = 230
mw = 10
b 等于 2,这是正确的。
d = 470
bw = 230
mw = 10
b 等于 1.958,这是不正确的,它仍然应该等于 2,因为我只需要知道块的数量。
d = 595
bw = 230
mw = 10
b 等于 2.479,这是不正确的,它应该等于 2.5,因为我只需要知道不包括砂浆小数部分的块数。
使用下一个修正公式:
b = int ((d + bw) / (bw + mw))
。int(X)
中,int
函数向下舍入到小于或等于 X 的最大整数。
d = 480;体重=230;分子量=10
Before INT() After INT()
( 0 + 230) / (230 + 10) = 0
( 10 + 230) / (230 + 10) = 1 \
( 20 + 230) / (230 + 10) = 1.042 |
( 30 + 230) / (230 + 10) = 1.083 |
... | 1 brick for d = [10,240]
(220 + 230) / (230 + 10) = 1.875 |
(230 + 230) / (230 + 10) = 1.917 |
(240 + 230) / (230 + 10) = 1.958 /
(250 + 230) / (230 + 10) = 2 \
(260 + 230) / (230 + 10) = 2.042 |
(270 + 230) / (230 + 10) = 2.083 |
... | 2 bricks for d = [250,480]
(460 + 230) / (230 + 10) = 2.875 |
(470 + 230) / (230 + 10) = 2.917 |
(480 + 230) / (230 + 10) = 2.958 /
(490 + 230) / (230 + 10) = 3 \
(500 + 230) / (230 + 10) = 3.042 |
(510 + 230) / (230 + 10) = 3.083 |
... | 3 bricks for d = [490,720]
(700 + 230) / (230 + 10) = 3.875 |
(710 + 230) / (230 + 10) = 3.917 |
(720 + 230) / (230 + 10) = 3.958 /