랜덤 생성 정수로 JavaScript 에서 특정 범위?

예를 들어, JavaScript 로 지정된 두 변수 사이의 정수로 임의적입니까 발령합니다 어떻게 'x = y = 8' 모든 '4' 와 '죽이려하겠어요 출력입니다 4, 5, 6, 7, 8'?

질문에 대한 의견 (3)
해결책

Mozilla Developer Network 에서 몇 가지 예제를 페이지:

/**
 * Returns a random number between min (inclusive) and max (exclusive)
 */
function getRandomArbitrary(min, max) {
    return Math.random() * (max - min) + min;
}

/**
 * Returns a random integer between min (inclusive) and max (inclusive).
 * The value is no lower than min (or the next integer greater than min
 * if min isn't an integer) and no greater than max (or the next integer
 * lower than max if max isn't an integer).
 * Using Math.round() will give you a non-uniform distribution!
 */
function getRandomInt(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

&lt hr>;

39 의 논리는 here& 될 수 있다. S # 39, 간단한 규칙을 it& 3:

마테오랭동 () '숫자' 0 'a' (포함) 과 1 사이의 되돌려줍니다 (독점). 그래서 우리는 간격에 다음과 같습니다.

[0 .................................... 1)

이제 we& # 39 분 '와' 맥스 ' (포함),' d like a 사이의 숫자 (단독):

[0 .................................... 1)
[min .................................. max)

우리는 '를 사용할 수 있는' 마테오랭동 내려받습니다 기자 [최소, 최대) 간격. 그러나 첫 번째 '조금' 를 통해 우리 팩터에서의 문제를 뺀 분 간격.

[0 .................................... 1)
[min - min ............................ max - min)

따라서:

[0 .................................... 1)
[0 .................................... max - min)

우리는 이제 '다음' 마테오랭동 적용하십시오 계산하는 기자. # 39 의 let& 난수를 선택합니다.

                Math.random()
                    |
[0 .................................... 1)
[0 .................................... max - min)
                    |
                    x (what we need)

따라서 찾기 위해, 'x' 할 것 "이라고 말했다.

x = Math.random() * (max - min);

39 분 ',' t forget don& 추가할 수 있도록 다시 얻고 있는 [최소, 최대) 간격:

x = Math.random() * (max - min) + min;

첫 번째 함수은 매든 에서 있는 것으로 알려졌다. 두 번째 '와' 최대 ',' 최소 정수를 되돌려줍니다 모두 포함).

이제 정수 가져오는 '또는' 바닥 ',' 차 ',' ceil 사용할 수 있습니다.

'마스트로런드 사용할 수 있습니다 (마테오랭동 () * (max - 분)) 는, 그러나 심지어 비사양 + 최소' 이 된다. 둘 다 '분' 와 '맥스' 가 있을 수 있는 기회를 약 절반 선보일 예정이다.

min...min+0.5...min+1...min+1.5   ...    max-0.5....max
└───┬───┘└────────┬───────┘└───── ... ─────┘└───┬──┘   ← Math.round()
   min          min+1                          max

'맥스' 가 함께 대상에서 제외돼 있는 것보다 더 기회를 롤 '분 간격, 정보기술 (it)'.

마테오프루어 (마테오랭동 () * (max - 최소 +1) '와' you have a + 최소 분배란 완벽하게 했다.

min.... min+1... min+2 ... max-1... max.... max+1 (is excluded from interval)
|        |        |         |        |        |
└───┬───┘└───┬───┘└─── ... ┘└───┬───┘└───┬───┘   ← Math.floor()
   min     min+1               max-1    max

Ceil () '와' - ',' t # 39 너회가 can& 사용할 수 있는 기회를 가지고 있기 때문에 방정식입니다 맥스야 '지금' 롤 (roll) 을 조금 덜 수 있지만 (필요없는) '결과' 1 분 너무.

해설 (29)
var randomnumber = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum;
해설 (5)

마테오랭동 ()

Mizilla 에서 Developer Network 문서:

// Returns a random integer between min (include) and max (include)

Math.floor(Math.random() * (max - min + 1)) + min;

유용한 (예:

// 0 - 10
Math.floor(Math.random() * 11);

// 1 - 10
Math.floor(Math.random() * 10) + 1;

// 5 - 20
Math.floor(Math.random() * 16) + 5;

// -10 - (-2)
Math.floor(Math.random() * 9) - 10;
해설 (0)
function getRandomizer(bottom, top) {
    return function() {
        return Math.floor( Math.random() * ( 1 + top - bottom ) ) + bottom;
    }
}

사용법:


var rollDie = getRandomizer( 1, 6 );

var results = ""
for ( var i = 0; i
해설 (7)

난수를 반품하십시오 1 부터 10:

Math.floor((Math.random()*10) + 1); 

난수를 반품하십시오 1 부터 100:

Math.floor((Math.random()*100) + 1)
해설 (3)
function randomRange(min, max) {
  return ~~(Math.random() * (max - min + 1)) + min
}
  • [언더스코엘가이스] [1] * 대체 사용할 경우 사용할 수 있습니다.
_.random(min, max)

[1]: http://underscorejs.org/ # 임의적입니까

해설 (3)

필요한 경우 최대 변수 0-사이의 사용할 수 있습니다.

Math.floor(Math.random() *  max);
해설 (2)

39, as the t) 의 매개변수를 완벽하게 다른 대답을 don& 합리적인 '0' 과 '1'. Ceil '이 아닌' 차 '의 콩지름에 대신' 또는 '바닥':

function randomNumber(minimum, maximum){
    return Math.round( Math.random() * (maximum - minimum) + minimum);
}

console.log(randomNumber(0,1));  # 0 1 1 0 1 0
console.log(randomNumber(5,6));  # 5 6 6 5 5 6
console.log(randomNumber(3,-1)); # 1 3 1 -1 -1 -1
해설 (1)

Ms 닷넷 슬라이드에서는 무순서 구현 클래스를 자바스크립트 -


var Random = (function () {
function Random(Seed) {
    if (!Seed) {
        Seed = this.milliseconds();
    }
    this.SeedArray = [];
    for (var i = 0; i < 56; i++)
        this.SeedArray.push(0);
    var num = (Seed == -2147483648) ? 2147483647 : Math.abs(Seed);
    var num2 = 161803398 - num;
    this.SeedArray[55] = num2;
    var num3 = 1;
    for (var i_1 = 1; i_1 < 55; i_1++) {
        var num4 = 21 * i_1 % 55;
        this.SeedArray[num4] = num3;
        num3 = num2 - num3;
        if (num3 < 0) {
            num3 += 2147483647;
        }
        num2 = this.SeedArray[num4];
    }
    for (var j = 1; j < 5; j++) {
        for (var k = 1; k < 56; k++) {
            this.SeedArray[k] -= this.SeedArray[1 + (k + 30) % 55];
            if (this.SeedArray[k] < 0) {
                this.SeedArray[k] += 2147483647;
            }
        }
    }
    this.inext = 0;
    this.inextp = 21;
    Seed = 1;
}
Random.prototype.milliseconds = function () {
    var str = new Date().valueOf().toString();
    return parseInt(str.substr(str.length - 6));
};
Random.prototype.InternalSample = function () {
    var num = this.inext;
    var num2 = this.inextp;
    if (++num >= 56) {
        num = 1;
    }
    if (++num2 >= 56) {
        num2 = 1;
    }
    var num3 = this.SeedArray[num] - this.SeedArray[num2];
    if (num3 == 2147483647) {
        num3--;
    }
    if (num3 < 0) {
        num3 += 2147483647;
    }
    this.SeedArray[num] = num3;
    this.inext = num;
    this.inextp = num2;
    return num3;
};
Random.prototype.Sample = function () {
    return this.InternalSample() * 4.6566128752457969E-10;
};
Random.prototype.GetSampleForLargeRange = function () {
    var num = this.InternalSample();
    var flag = this.InternalSample() % 2 == 0;
    if (flag) {
        num = -num;
    }
    var num2 = num;
    num2 += 2147483646.0;
    return num2 / 4294967293.0;
};
Random.prototype.Next = function (minValue, maxValue) {
    if (!minValue && !maxValue)
        return this.InternalSample();
    var num = maxValue - minValue;
    if (num 
해설 (1)
  • 이 기능을 사용하여 임의의 주어진 범위 * 사이의 숫자로 확보하십시오.
function rnd(min,max){
    return Math.floor(Math.random()*(max-min+1)+min );
}
해설 (0)

컴퓨터 프로그램, 난수 생성 후 사용하는 번호 그대로 무자비한 고려해보십시오 부품이라면 또는 전체 중 하나를 선택할 수 있는 경우 초기 하나. 무자비한 비판을 받아들일 수 없는 신앙이니라 전송되었기 변경된 후, 그들은 그것을 number. 바이어스됨 연락할 수 있는 프로그램을 개발할 수 있지만, 이 경우 단순 작업을 하지 않을 경우 고려해야 합니다. 프로그램 개발을 위한 신앙이니라 틀렸다니까 난수를 생성할 수 있는 귀중한 물건을 프로그램 또는 도박 게임, 복권 등 그런후에도 너회의 프로그램 에서 거부됩니다 않을 경우 위의 case. 고려해보십시오 정보 관리

따라서, 이러한 종류의 사람이 바로 내 제안에:

난수를 생성할 마테오랭동 () 를 사용하여 ' (' n '라고 이)'.

Now for [0,10) ==>  n*10 (i.e. one digit) and for[10,100) ==> n*100 (i.e. two digits) and so on. Here squire bracket indicates that boundary is inclusive and round bracket indicates boundary is exclusive.
Then remove the rest after the decimal point. (i.e. get floor) - using Math.floor(), this can be done.

임의의 숫자를 읽을 줄 아는 경우 테이블 위에 난수를 좀 알 수 있듯이, 프로세스 (1 씩 증가하고, 10, 100 등) 에서 언급한 것은 처음부터 한 거라고 판단했다. (소수점 대신 변경 때문에 해당.)

다음 예에서는 이 연구 및 개발 요구에.

필요할 경우 다음 층에서 n1 샘플링합니다 [0.9] [0.99] 답이 및 필요한 경우 그 층에서 n10 답이 및 드릴링됩니다.

그럼 지금부터 들어갈 사용자 역할:

39, ve 질문과대답 숫자임 you& 가운데 특정 범위. (이 경우 그 범위 중 바이어스됨 있다. 이용하여 여러 에서 [1.6] 로 롤 다이 관심용 틀렸다니까 바이어스됨 salesforce. [1.6] 그래도 컴포지션이 임의적입니까 경우에만 die () 는 색채가 없는 분들이 맡도록.)

그래서 고려해보십시오 범위 = &gt. [78dbm, 247] 여러 가지 요소 중 247 - 78dbm maxvalorarray 170tb + 1 =, = (이후 모두 경계는 포함).


/*Mthod 1:*/
    var i = 78, j = 247, k = 170, a = [], b = [], c, d, e, f, l = 0;
    for(; i 
해설 (4)

임의의 정수 (범위, kingdome. seattle. 시도하시겠습니까:

function random(minimum, maximum) {
  var bool = true;

  while (bool) {
    var number = (Math.floor(Math.random() * maximum + 1) + minimum);
    if (number > 20) {
      bool = true;
    } else {
      bool = false;
    }
  }

  return number;
}
해설 (0)

이 질문은 이미 그러니까말이야 답변됨 하지만 제 답변이 누군가를 도와라.

이 단순한 W3Schools 대한 방법을 찾았다.

Math.floor((Math.random() * max) + min);

누군가 ᄋ "이번 보호하리요.

해설 (3)

1 부터 6 afaq 난수를 말하도다 먼저 해야 할 것:

    0.5 + (Math.random() * ((6 - 1) + 1))

이 숫자는 6 그리곤요 곱합니다 임의적입니까 자도으로 0.5 예정이다. 다음 라운드 많은 양의 정수 수행여:

    Math.round(0.5 + (Math.random() * ((6 - 1) + 1))

이 라운드 명으로 가장 근접한 정수를.

또는 좀 더 쉽게 이해할 수 있는 됩니다.

    var value = 0.5 + (Math.random() * ((6 - 1) + 1))
    var roll = Math.round(value);
    return roll;

일반적으로 이 변수를 사용하여 코드 할 수 있다.

    var value = (Min - 0.5) + (Math.random() * ((Max - Min) + 1))
    var roll = Math.round(value);
    return roll;

그 이유는 빼냅니다 0.5 에서 사용하는 데 최소값이 내려졌단 최소값이 죽이려하겠어요 가져올 수 있기 때문에 그것은 한 개 이상의 정수 너회의 최대값인. 등을 이용하여 0.5 에서 최소값이 틀렸다니까 근본적으로 막는 최대값인 반올림할 에서 공개되었다.

  • Helps.* 바란다
해설 (1)

다음과 같은 코드를 사용하여 일정한 범위 없이 리피팅, 난수 어레이입니다 생성할 수 있습니다.

function genRandomNumber(how_many_number,min,max) {

            // parameters
            // how_many_number : how many numbers you want to generate. For example it is 5.
            // min(inclusive) : minimum/low value of a range. it must be any positive integer but less than max. i.e 4
            // max(inclusive) : maximun value of a range. it must be any positive integer. i.e 50
            // return type: array

            var random_number = [];
            for (var i = 0; i < how_many_number; i++) {
                var gen_num = parseInt((Math.random() * (max-min+1)) + min);
                do {
                    var is_exist = random_number.indexOf(gen_num);
                    if (is_exist >= 0) {
                        gen_num = parseInt((Math.random() * (max-min+1)) + min);
                    }
                    else {
                        random_number.push(gen_num);
                        is_exist = -2;
                    }
                }
                while (is_exist > -1);
            }
            document.getElementById('box').innerHTML = random_number;
        }
해설 (0)
function getRandomInt(lower, upper)
{
    //to create an even sample distribution
    return Math.floor(lower + (Math.random() * (upper - lower + 1)));

    //to produce an uneven sample distribution
    //return Math.round(lower + (Math.random() * (upper - lower)));

    //to exclude the max value from the possible values
    //return Math.floor(lower + (Math.random() * (upper - lower)));
}

이 기능을 테스트하려면 HTML / JavaScript 파일로 저장 및 변경, 이 함수의 아래 있지만브라우저에 개방. 코드 a 분포됩니다 보여주는 1 백만 함수 호출을 그래프화합니다 생산할 예정이다. 또한, 만일 이 함수는 코드를 기록하십시오 면쪽 건 보다 큰 값을 얻을 수 있는 최대, 또는 보다 최소, you.will.know.about.it.




        <script type="text/javascript">
        function getRandomInt(lower, upper)
        {
            //to create an even sample distribution
            return Math.floor(lower + (Math.random() * (upper - lower + 1)));

            //to produce an uneven sample distribution
            //return Math.round(lower + (Math.random() * (upper - lower)));

            //to exclude the max value from the possible values
            //return Math.floor(lower + (Math.random() * (upper - lower)));
        }

        var min = -5;
        var max = 5;

        var array = new Array();

        for(var i = 0; i 
해설 (0)

최저값 사이의 임의의 정수 및 최고:

function randomRange(l,h){
  var range = (h-l);
  var random = Math.floor(Math.random()*range);
  if (random === 0){random+=1;}
  return l+random;
}

가장 세련된 솔루션이므로 없습니다. 그런데 뭔가 신속시작.

해설 (0)

39 를 사용하여, s what I here& 난수 생성.

function random(high,low) {
    high++;
    return Math.floor((Math.random())*(high-low))+low;
}

실행하십시오 high++ 마테오랭동 () '는' 우리가 '때문에' (포함), 0 과 1 사이의, 난수 (단독) 를 1 씩 높은 실행하기 전에 우리가 먼저 증가되지는 하나는 제외된 것은 하나님은 우리에게 주는 것이 가장 많은 수인 수학이요 subtract 낮음입니다 높은 곳에서 낮은 후 다시 정상으로 만들어 왔습니다 - +low 생성할 수 이상의 높은 가장 낮은 낮음입니다. 그리고 우리는 그 번호를 반품해야

랜덤 (7.3) ',' 7 '또는' 3.4,5.6 돌아갈 수 있었다

해설 (1)

예입니다 자바스크립트 함수를 사용하지 않고 모든 난수를 생성할 수 있는 길이 지정되었습니까 : 마테오랭동 ()


    function genRandom(length)
    {
     const t1 = new Date().getMilliseconds();
     var min = "1",max = "9";
     var result;
     var numLength = length;
     if (numLength != 0)
     {
        for (var i = 1; i < numLength; i++)
        {
           min = min.toString() + "0";
           max = max.toString() + "9";
        }
     } 
     else
     {
        min = 0;
        max = 0;
        return; 
     }

      for (var i = min; i 
해설 (3)



            <meta charset="utf-8" />


        <script>
            /*

                assuming that window.crypto.getRandomValues is available
                the real range would be fron 0 to 1,998 instead of 0 to 2,000
                See javascript documentation for explanation
                https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues
            */
            var array = new Uint8Array(2);
            window.crypto.getRandomValues(array);
            console.log(array[0] + array[1]);

        </script>

최대 3 자리 숫자로 접수됨 uint8array 생성하시겠습니까 어레이입니다 될 수 있는 최대 999. 이 코드는 매우 짧다.

해설 (0)