|
|
甲乙丙瓶各有1升水,每次甲倒一半给乙,乙倒一半给丙,丙倒一半给甲,求稳定状态
[这个贴子最后由天山草在 2013/06/29 05:59pm 第 1 次编辑]
'; 操作结果演示
    '; 有甲、乙、丙三个瓶子,开始时各有 a,b,c 公升水。以后每一轮操作,都是先将甲瓶的水倒出一半到乙瓶,
    '; 再将乙瓶的水倒出一半到丙瓶,再将丙瓶的水倒出一半到甲瓶。
    '; 这样一直操作下去,直至达到稳定状态时,甲瓶中有多少水?
   
    '; 本程序运行结果:甲、乙、丙三个瓶中各有水(a+b+c)/2, (a+b+c)/4, (a+b+c)/4
    '; 有些奇怪,“稳定”后并不是三个瓶中的水都一样多。
   
    Private Sub form_Click()
   
    a = 1: b = 2: c = 9   ';假定甲、乙、丙三个瓶子,开始时各有 a,b,c 公升水。
   
    k = 10  ';操作次数
   
    For i = 1 To k
     a1 = a / 2: b1 = b + a / 2: c1 = c ';先将甲瓶的水倒出一半到乙瓶
     a = a1: b = b1: c = c1
     a1 = a: b1 = b / 2: c1 = c + b / 2 ';再将乙瓶的水倒出一半到丙瓶
     a = a1: b = b1: c = c1
     a1 = a + c / 2: b1 = b: c1 = c / 2 ';再将丙瓶的水倒出一半到甲瓶
     a = a1: b = b1: c = c1
     
      Print "a("; i; ")=";: Print Format(a, "#.#######")
      Print "b("; i; ")=";: Print Format(b, "#.#######")
      Print "c("; i; ")=";: Print Format(c, "#.#######")
      Print
     Next i
    End Sub
假定开始时 a = 0: b = 2: c = 1
共操作 10 次,各次的结果是:
a( 1 )=1.
b( 1 )=1.
c( 1 )=1.
a( 2 )=1.375
b( 2 )=.75
c( 2 )=.875
a( 3 )=1.484375
b( 3 )=.71875
c( 3 )=.796875
a( 4 )=1.5058594
b( 4 )=.7304688
c( 4 )=.7636719
a( 5 )=1.5056152
b( 5 )=.7416992
c( 5 )=.7526855
a( 6 )=1.5027771
b( 6 )=.7472534
c( 6 )=.7499695
a( 7 )=1.5010338
b( 7 )=.749321
c( 7 )=.7496452
a( 8 )=1.500299
b( 8 )=.7499189
c( 8 )=.7497821
a( 9 )=1.5000576
b( 9 )=.7500342
c( 9 )=.7499081
a( 10 )=1.4999987
b( 10 )=.7500315
c( 10 )=.7499698
|
|