0

我有一个柜台。N次后它增加一。我改哪个算法N,计数器一开始增长很快,最后变慢了。

谢谢。

UPD:Java 上的源代码:

currentProcent = 0;
deltaSecond = 3000f / (float) bigProcNumber;    // 3000f - 3 second, is fixed
new Thread(new Runnable() {
   public void run() {
      try {
         while (currentProc != (int) bigProcNumber) {
            Thread.sleep((int) (deltaSecond));
            // UI Change
         }
      } catch (InterruptedException e) {
         e.printStackTrace();
      }
   }
}).start();

我需要更改 deltatime,但所有 deltatime 的总和必须等于 3000 毫秒。

4

2 回答 2

2

如果我正确地解释了你的问题,你想找到一个开始迅速增加,后来慢慢增加的函数,可能是这样的形状?

在此处输入图像描述

Log我使用可能合适的功能制作了图形,但还有很多其他功能。

于 2012-11-15T10:21:21.533 回答
1
  1. 保留大写“N”。不要使用 is 作为变量名。

  2. 听起来您想构建一个可变速率的时钟计数器。Mathematica 有几种不同的方法来控制时钟,它们具有不同的特性。(查看,例如,与更新间隔Pause[]相关 CreateScheduledTask[]或控制更新间隔的功能Dynamic)给我们更多关于您正在尝试做什么的提示。示例代码很好。

  3. Pause这是基于 - 的计时器的示例。

    t = 0;
    Manipulate[
     t += dt;
     Pause[dt]; 
     Graphics[{Circle[], 
     Line[{{0., 0.}, {Cos[t/(2 Pi)], -Sin[t/(2 Pi)]}}]}]
     {{dt, 0.5}, 0.1, 1, 0.1, PopupMenu}
    ]
    
  4. 小心使用周围的计时器DynamicDynamic这是一个用于控制时钟的示例。

    Manipulate[
     DynamicModule[{t = 0},
      Graphics[{
       Circle[], 
       Line[{{0., 0.}, {Cos[#/(2 Pi)], -Sin[#/(2 Pi)]} &@
        Dynamic[t += dt, UpdateInterval -> dt]}]
      }]
     ]
    ,{{dt, 0.5}, 0.1, 1, Appearance -> "Labeled"}
    ]
    
于 2012-11-15T13:31:47.293 回答