<input type="submit"  value="开始" name="BB1" onClick="loopram()"><br>
<input type="text" name="NNNNNN" size="20" id="NNNNNN"><br>
<input type="text" name="MMMMMM" size="20" id="MMMMMM">
<script>
function loopram()
  {
    creat_n();
    creat_n1();
    if(document.getElementById("NNNNNN").value != document.getElementById("MMMMMM").value)
      loopram(); ;  }
</script>

解决方案 »

  1.   

    用2种不同方法产生16位的2个随机数
    如果随机数相同就分别在NNNNNN和MMMMMM显示
      

  2.   

    几率是很小,应该改用setTimeout就不会"死机"了
        if(document.getElementById("NNNNNN").value != document.getElementById("MMMMMM").value)
          setTimeout(loopram,0);
      

  3.   

    你这思路... 随机数要让其相同, 这是什么事呀, 倒不如搞个 guid, 让其相同更厉害些.
      

  4.   

    setTimeout()好像没有解决阿这思路是想要看在什么情况下能够得到相同的随机数,
    并且在几率很小的情况下如何实现
      

  5.   

    不会死机,只是浏览器弹出提示“Out of memory at line:39”我想请教的是应如何写这么函数才不会出现这个错误?
      

  6.   

    <script type="text/javascript">
    //<![CDATA[
      function jsclass_compareRnd () {
        this.rndA = null;
        this.rndB = null;
        this.maxloop = 10000;    this.generateRnd = function () {
          return (Math.random().toFixed(3));
        }
        this.toDo = function () {    
          this.rndA = this.generateRnd();    
          var cnt=0; while (this.rndA!=this.rndB) {
            this.rndB = this.generateRnd();
            if (++cnt>this.maxloop) break;
          }
          alert(this.rndA)
          alert(this.rndB)
          alert(cnt)
        }
      }
      var instance = new jsclass_compareRnd();
      instance.toDo()
    //]]>
    </script>
      

  7.   

    严格的说,javascript的随机函数是基于时间的伪随机数,并不是真正意义上的随机
    所以我觉得用连续的两个random()方法产生两个随机数是不可能相等的吧,除非有延迟或者其它手段.