代码之家  ›  专栏  ›  技术社区  ›  Andrew Hedges

节水小便器的最佳算法设计是什么?[关闭]

  •  12
  • Andrew Hedges  · 技术社区  · 16 年前

    在工作中,我们有一个肮脏的公共小便池。没有冲水手柄。相反,它有一个运动传感器,当你站在它面前时,它有时会触发,有时不会触发。当它触发时,一个水箱会装满,装满后用于冲洗小便器。

    在这次疯狂之前的多次旅行中,我思考了盒子用来确定何时打开的算法是什么,以及在节约用水的同时仍然保持相对愉快的小便体验的最佳算法是什么。

    一旦人们有机会分享他们的想法,我就会分享我的答案。

    6 回复  |  直到 16 年前
        1
  •  17
  •   Gerald    16 年前
    OnUserEnter()
    {
       if (UsersDetected == 0)
       {
          FirstDetectionTime = Now();
       }
       UsersDetected++;
       CurrentlyInUse = true;
    }
    
    OnUserExit()
    {
      CurrentlyInUse = false;
      if (UsersDetected >= MaxUsersBetweenFlushes || 
             Now() - FirstDetectionTime > StinkInterval)
      {
         Flush();
      }
    }
    
    OnTimer()
    {
       if (!CurrentlyInUse && 
              UsersDetected > 0 && 
              Now() - FirstDetectionTime > StinkInterval)
       {
          Flush();
       }
    }
    
    Flush()
    {
       FlushTheUrinal();
       UsersDetected = 0;
    }
    
        2
  •  4
  •   BoltBait    16 年前

    你怎么知道它真的不是一个摄像头,它把视频传输到地下室的一排监视器上,当米尔顿看到你离开小便池时,他会触发冲水?

    /我戴上他的锡箔帽

        3
  •  3
  •   steffenj    16 年前

    最好的节水算法是没有把手和损坏传感器的小便器。

    这似乎是我们小便器的大部分时间的状态,所以我想它必须故意设计成这样,以节约宝贵的饮用水。

        4
  •  1
  •   Peter Wone    16 年前

    我会根据感觉触发,但会慢慢填充,希望当它真正冲水时,其他人已经砍了一刀。这种方法将最大限度地减少恶臭的停滞,偶尔会跳过冲洗周期。

        5
  •  1
  •   steffenj    16 年前

    我们学校的“并行处理”(也称为“多用户”)小便器每次在休息铃响之前,当然在“休息结束”铃响后不久,都会触发完全冲洗。非常简单有效。

        6
  •  0
  •   MrBoJangles hugomg    16 年前

    冒着听起来像卢德主义的风险,我认为最好的解决方案是手柄。但这不是问题所在。我认为这个机制非常简单。有人走到它前面,开始计数。当计数完成时,小便器被“预充”。当人离开时,触发器被拉动,传感器会关闭任意一段时间(我认为它没有或不需要对冲洗/油箱加注的行为有任何意识)。

    我是不是想得太多了?