1부터 34까지의 난수. 온라인 난수 생성기. 선형 합동 gpng

주어진 분포를 따르는 실질적으로 독립적인 요소로 구성된 일련의 숫자가 있습니다. 원칙적으로 균일한 분포입니다.

다양한 방법과 방법으로 Excel에서 난수를 생성할 수 있습니다. 그중 최고만을 고려해 봅시다.

Excel의 난수 함수

  1. RAND 함수는 균일하게 분포된 임의의 실수를 반환합니다. 1보다 작거나 0보다 크거나 같습니다.
  2. RANDBETWEEN 함수는 임의의 정수를 반환합니다.

예제를 통해 그 사용법을 살펴보겠습니다.

RAND를 사용하여 난수 샘플링

이 함수에는 인수(RAND())가 필요하지 않습니다.

예를 들어, 1에서 5 사이의 실수 실수를 생성하려면 다음 수식을 사용합니다: =RAND()*(5-1)+1.

반환된 난수는 간격에 걸쳐 균일하게 분포됩니다.

워크시트가 계산되거나 워크시트의 셀 값이 변경될 때마다 새로운 난수가 반환됩니다. 생성된 모집단을 저장하려면 수식을 해당 값으로 바꿀 수 있습니다.

  1. 임의의 숫자가 있는 셀을 클릭하세요.
  2. 수식 입력줄에서 수식을 선택합니다.
  3. F9를 누르세요. 그리고 입력하세요.

분포 히스토그램을 사용하여 첫 번째 샘플의 난수 분포의 균일성을 확인해 보겠습니다.


수직 값의 범위는 빈도입니다. 수평 - "주머니".



RANDBETWEEN 함수

RANDBETWEEN 함수의 구문은 (하한, 상한)입니다. 첫 번째 인수는 두 번째 인수보다 작아야 합니다. 그렇지 않으면 함수에서 오류가 발생합니다. 경계는 정수로 가정됩니다. 수식은 분수 부분을 삭제합니다.

기능 사용 예:

정밀도가 0.1 및 0.01인 난수:

Excel에서 난수 생성기를 만드는 방법

특정 범위의 값을 생성하는 난수 생성기를 만들어 보겠습니다. =INDEX(A1:A10,INTEGER(RAND()*10)+1)과 같은 공식을 사용합니다.

0부터 100까지 범위의 난수 생성기를 10단계로 만들어 보겠습니다.

목록에서 텍스트 값무작위로 2개를 선택해야 합니다. RAND 함수를 사용하여 A1:A7 범위의 텍스트 값을 난수와 비교합니다.

INDEX 함수를 사용하여 원본 목록에서 두 개의 임의의 텍스트 값을 선택해 보겠습니다.

목록에서 임의의 값 하나를 선택하려면 다음 공식을 사용하십시오: =INDEX(A1:A7,RANDBETWEEN(1,COUNT(A1:A7))).

정규분포 난수 생성기

RAND 및 RANDBETWEEN 함수는 균일한 분포를 갖는 난수를 생성합니다. 동일한 확률을 가진 값은 요청된 범위의 하한과 상한에 속할 수 있습니다. 이로 인해 목표 값과 큰 차이가 발생합니다.

정규 분포는 생성된 숫자의 대부분이 목표 숫자에 가깝다는 것을 의미합니다. RANDBETWEEN 수식을 조정하고 정규 분포를 갖는 데이터 배열을 만들어 보겠습니다.

제품 X의 가격은 100 루블입니다. 생산된 전체 배치는 정규 분포를 따릅니다. 확률 변수도 정규 확률 분포를 따릅니다.

이러한 조건에서 범위의 평균 값은 100 루블입니다. 배열을 생성하고 표준 편차가 1.5 루블인 정규 분포의 그래프를 작성해 보겠습니다.

=NORMINV(RAND();100;1.5) 함수를 사용합니다.

Excel은 어떤 값이 확률 범위 내에 있는지 계산했습니다. 100 루블의 비용으로 제품을 생산할 확률이 최대이므로 공식은 다른 것보다 100에 가까운 값을 더 자주 표시합니다.

그래프를 그리는 것으로 넘어 갑시다. 먼저 카테고리가 포함된 테이블을 만들어야 합니다. 이를 위해 배열을 기간으로 나눕니다.

얻은 데이터를 기반으로 정규 분포를 갖는 다이어그램을 생성할 수 있습니다. 값 축은 구간의 변수 수이고 범주 축은 기간입니다.

제시된 온라인 난수 생성기는 JavaScript에 내장된 균일 분포를 갖춘 의사 난수 생성기를 기반으로 작동합니다. 정수가 생성됩니다. 기본적으로 100~999 범위의 무작위 숫자 10개가 공백으로 구분되어 표시됩니다.

난수 생성기의 기본 설정:

  • 숫자의 수
  • 번호 범위
  • 분리기 유형
  • 반복(중복된 숫자) 제거 기능 켜기/끄기

총 수는 공식적으로 1000으로 제한되며 최대 10억입니다. 구분 기호 옵션: 공백, 쉼표, 세미콜론.

이제 인터넷에서 특정 범위의 무료 난수 시퀀스를 어디서 어떻게 얻을 수 있는지 정확히 알 수 있습니다.

난수 생성기의 응용 프로그램 옵션

난수 생성기(균일 분포를 사용하는 JS의 RNG)는 SMM 전문가와 그룹 및 커뮤니티 소유자에게 유용합니다. 소셜 네트워크 Instagram, Facebook, VKontakte, Odnoklassniki는 복권, 대회 및 경품 추첨의 우승자를 결정합니다.

난수 생성기를 사용하면 지정된 수의 우승자를 포함한 임의 수의 참가자 중에서 상품을 추첨할 수 있습니다. 재게시물이나 댓글 없이 콘테스트를 열 수 있습니다. 참가자 수와 난수 생성 간격을 직접 설정하세요. 이 사이트에서 온라인으로 무료로 난수 세트를 얻을 수 있으며, 스마트폰에 애플리케이션을 설치하거나 컴퓨터에 프로그램을 설치할 필요가 없습니다.

또한 온라인 난수 생성기를 사용하여 동전이나 주사위 던지기를 시뮬레이션할 수 있습니다. 그러나 이러한 경우에는 별도의 전문 서비스를 제공합니다.

필요한 범위의 난수를 생성하려면 온라인 난수 생성기를 사용하는 것이 가장 좋습니다. 유효성 대량옵션을 사용하면 필요한 난수 수를 선택할 수 있을 뿐만 아니라 최종 및 초기 값을 지정할 수도 있습니다.

온라인 번호 생성기(랜덤마이저) 지침:

기본적으로 난수 생성기에는 1개의 숫자가 입력됩니다. 애플리케이션 설정을 변경하면 최대 250개의 난수를 동시에 생성할 수 있습니다. 먼저 범위를 설정해야 합니다. 최대 숫자 값은 9,999,999,999입니다. 난수 생성기를 사용하면 숫자를 내림차순, 오름차순 또는 무작위 순서로 정렬할 수 있습니다.

결과를 표시하려면 세미콜론, 쉼표, 공백 등 다양한 구분 기호를 사용할 수 있습니다. 또한 반복이 발생할 수 있습니다. "반복 제외" 옵션을 사용하면 중복을 제거할 수 있습니다. "결과 링크"를 복사하여 메신저나 이메일을 통해 계산 결과에 대한 링크를 보낼 수도 있습니다.

다음에 사용되는 명확하고 편리한 온라인 번호 생성기 최근에인기. 이는 사용자들 사이의 소셜 네트워크에서 경품 추첨 중에 가장 널리 퍼졌습니다.

다른 지역에서도 인기가 많습니다. 비밀번호와 숫자도 있습니다.

온라인 난수 생성기.

우리의 랜덤마이저 생성기는 개인 PC에 다운로드할 필요가 없습니다. 모든 것은 온라인 숫자 생성기 모드에서 발생합니다. 숫자가 무작위로 선택되는 온라인 숫자 범위와 같은 매개변수를 지정하기만 하면 됩니다. 또한 선택할 번호의 수도 표시합니다.

예를 들어 VKontakte 그룹이 있습니다. 그룹 내에서 게시물을 재게시한 참여자 중 5분께 상품을 드립니다. 특별 신청서를 사용하여 참가자 목록을 받았습니다. 각각에는 온라인 번호에 대한 자체 일련 번호가 할당되었습니다.

이제 온라인 생성기로 이동하여 숫자 범위(참가자 수)를 표시합니다. 예를 들어, 상품이 5개 있으므로 온라인에 5개의 숫자가 필요하다고 설정합니다. 이제 생성 버튼을 클릭하세요. 그런 다음 온라인에서 1부터 112까지의 5개의 난수를 얻습니다. 온라인에서 생성된 5개의 숫자는 추첨에 당첨된 참가자 5명의 일련번호와 일치합니다. 모든 것이 간단하고 편리합니다.

난수 생성기의 또 다른 장점은 온라인의 모든 숫자가 무작위로 발행된다는 것입니다. 즉, 영향을 미치거나 다음에 어떤 숫자가 나올지 계산하는 것이 불가능합니다. 정직하고 신뢰할 수 있다는 것은 무엇을 의미하며, 무료 발전기를 사용하여 상품을 제공하는 행정부는 대회 참가자 입장에서 정직하고 품위가 있습니다. 결정에 대해 의문이 있는 경우 당사의

난수 생성기가 가장 좋은 이유는 무엇입니까?

요점은 온라인 번호 생성기모든 장치에서 항상 온라인으로 사용할 수 있습니다. 당신은 당신이 가지고 있는 어떤 아이디어에 대해서도 솔직하게 어떤 숫자든 생성할 수 있습니다. 그리고 프로젝트에도 동일하게 사용하십시오. 난수 생성기온라인. 특히 게임의 승자를 결정해야 하거나 온라인에서 다른 번호를 결정해야 하는 경우에는 더욱 그렇습니다. 요점은 난수 생성기알고리즘 없이 완전히 무작위로 숫자를 생성합니다. 본질적으로 숫자와 동일합니다.

난수 생성기는 온라인에서 무료로 제공됩니다!

난수 생성기는 온라인에서 모두에게 무료로 제공됩니다. 다운로드하거나 구매할 필요가 없습니다. 난수 생성기추첨을 위해 온라인으로. 저희 웹사이트에 가서 필요한 무작위 결과를 얻으시면 됩니다. 우리는 뿐만 아니라 난수 생성기하지만 많은 사람들에게도 필요하며 복권 당첨에 확실히 도움이 될 것입니다. 복권을 위한 실제 온라인 난수 생성기는 절대 무작위성입니다. 우리 사이트가 귀하에게 제공할 수 있는 것.

온라인에서 임의의 번호

온라인에서 임의의 숫자를 찾고 계시다면 저희가 여러분을 위해 이 리소스를 만들었습니다. 우리는 지속적으로 알고리즘을 개선하고 있습니다. 여기서 진짜를 얻을 수 있습니다 난수 생성기.필요한 임의 생성기와 같은 모든 요구 사항을 언제든지 완전 무료로 제공합니다. 우리와 함께 온라인으로 난수를 생성하세요. 생성된 모든 숫자가 완전히 무작위인지 항상 확인하세요.

난수 생성기

우리의 난수 생성기는 완전히 무작위로 숫자를 무작위로 선택합니다. 컴퓨터에 어떤 요일이나 시간이 있는지는 중요하지 않습니다. 이것은 진짜 맹목적인 선택입니다. 무작위 생성기는 단순히 모든 숫자를 무작위 순서로 섞습니다. 그런 다음 지정한 임의의 숫자를 무작위로 선택합니다. 때로는 숫자가 반복될 수 있는데, 이는 난수 생성기의 완전한 무작위성을 입증합니다.

무작위 온라인

무작위는 무승부에서 가장 확실한 옵션입니다. 온라인 생성기는 정말 무작위 선택입니다. 귀하는 난수 선택에 영향을 미치지 않도록 보호됩니다. 온라인에서 무작위로 우승자를 선정하는 과정을 영상으로 촬영합니다. 그게 당신이 필요한 전부입니다. 온라인 번호 생성기를 사용하여 온라인으로 박람회 추첨을 조직하세요. 당신은 승자와 만족스러운 플레이어를 얻습니다. 그리고 우리는 무작위 생성기로 귀하를 만족시킬 수 있어서 기쁩니다.

Math.random()이 어떻게 작동하는지 궁금한 적이 있습니까? 난수란 무엇이며 어떻게 얻나요? 인터뷰 질문을 상상해 보세요. 몇 줄의 코드로 난수 생성기를 작성하세요. 그렇다면 사고란 무엇이며 이를 예측하는 것이 가능합니까?

저는 다양한 IT 퍼즐과 작업에 매우 매료되어 있는데, 난수 생성기는 이러한 작업 중 하나입니다. 보통 텔레그램 채널에서는 인터뷰에서 나온 모든 종류의 퍼즐과 다양한 작업을 분석합니다. 난수 생성기 문제는 큰 인기를 얻었으며 저는 이를 권위 있는 정보 소스 중 하나인 여기 Habré의 심층에서 영속시키고 싶었습니다.

이 자료는 최첨단 기술을 보유하고 있으며 프런트엔드 개발자라도 보안 및 암호화에 관해 질문을 받는 블록체인 프로젝트/스타트업에 참여하기를 원하는 모든 프런트엔드 및 Node.js 개발자에게 유용할 것입니다. 적어도 기본적인 수준에서는요.

의사 난수 생성기 및 난수 생성기

무작위성을 얻으려면 무작위성을 생성하는 데 사용할 혼돈의 원천인 엔트로피 소스가 필요합니다.

이 소스는 엔트로피를 축적한 다음 난수 생성기(RNG)가 난수를 생성하는 데 필요한 초기 값(시드)을 얻는 데 사용됩니다.

의사 난수 생성기는 단일 시드를 사용하므로 의사 난수성을 갖는 반면, 난수 생성기는 항상 다양한 엔트로피 소스에서 추출된 고품질 무작위 변수로 시작하여 난수를 생성합니다.

엔트로피는 무질서의 척도이다. 정보 엔트로피는 정보의 불확실성이나 예측 불가능성을 측정한 것입니다.
의사 난수 시퀀스를 생성하려면 특정 공식을 기반으로 특정 시퀀스를 생성하는 알고리즘이 필요하다는 것이 밝혀졌습니다. 그러나 그러한 순서는 예측할 수 있습니다. 그러나 Math.random()이 없다면 어떻게 난수 생성기를 직접 작성할 수 있는지 상상해 봅시다.

PRNG에는 재현할 수 있는 몇 가지 알고리즘이 있습니다.
RNG는 일종의 노이즈로부터 완전히 숫자를 얻는 프로세스로, 어느 것이 0이 되는 경향이 있는지 계산하는 기능입니다. 동시에 RNG에는 분포를 균등화하기 위한 특정 알고리즘이 있습니다.

우리는 자체 PRNG 알고리즘을 생각해 냈습니다.

PRNG(의사 난수 생성기)는 요소가 서로 거의 독립적이고 주어진 분포(일반적으로 균일함)를 따르는 일련의 숫자를 생성하는 알고리즘입니다.
우리는 일련의 숫자를 취해 그 숫자의 모듈러스를 구할 수 있습니다. 떠오르는 가장 간단한 예입니다. 우리는 어떤 순서를 취하고, 어떤 모듈을 취해야 하는지 생각해야 합니다. 0에서 N으로 직접 모듈러스 2를 사용하면 1과 0의 생성기를 얻게 됩니다.

함수* rand() ( const n = 100; const mod = 2; let i = 0; while (true) ( ​​​​yield i % mod; if (i++ > n) i = 0; ) ) let i = 0; for (let x of rand()) ( if (i++ > 100) break; console.log(x); )
이 함수는 01010101010101... 시퀀스를 생성하며 의사 난수라고도 할 수 없습니다. 생성기가 무작위가 되려면 다음 비트 테스트를 통과해야 합니다. 하지만 우리에겐 그런 임무가 없습니다. 그럼에도 불구하고 아무런 테스트 없이도 다음 시퀀스를 예측할 수 있습니다. 이는 그러한 알고리즘이 적합하지 않지만 올바른 방향으로 가고 있음을 의미합니다.

예를 들어 숫자 PI와 같이 잘 알려져 있지만 비선형 시퀀스를 취하면 어떻게 될까요? 그리고 모듈의 값으로 우리는 2가 아닌 다른 것을 취할 것입니다. 모듈의 값 변경에 대해서도 생각해 볼 수 있습니다. Pi의 숫자 순서는 무작위로 간주됩니다. 발전기는 알려지지 않은 지점에서 시작하는 Pi 번호를 사용하여 작동할 수 있습니다. PI 기반 시퀀스와 변수 모듈을 사용하는 이러한 알고리즘의 예:

Const 벡터 = [...Math.PI.toFixed(48).replace(".","")]; function* rand() ( for (let i=3; i<1000; i++) { if (i >99) 나는 = 2; 하지만 JS에서는 PI 번호를 최대 48자리까지만 표시할 수 있으며 그 이상은 표시할 수 없습니다. 따라서 이러한 시퀀스를 예측하는 것은 여전히 ​​쉽으며 이러한 생성기를 실행할 때마다 항상 동일한 숫자가 생성됩니다. 하지만 우리 생성기는 이미 0부터 9까지의 숫자를 표시하기 시작했습니다.

0부터 9까지의 숫자 생성기가 있지만 분포가 매우 고르지 않아 매번 동일한 시퀀스가 ​​생성됩니다.

숫자 Pi가 아닌 시간을 숫자로 표현할 수 있으며 이 숫자를 숫자의 시퀀스로 간주하고 시퀀스가 ​​매번 반복되지 않도록 끝부터 읽습니다. 전체적으로 PRNG에 대한 알고리즘은 다음과 같습니다.

함수* rand() ( let newNumVector = () => [...(+new Date)+""].reverse(); let vector = newNumVector(); let i=2; while (true) ( ​​​​if ( i++ > 99) i = 2; let n=-1;< vector.length) yield (vector[n] % i); vector = newNumVector(); } } // TEST: let i = 0; for (let x of rand()) { if (i++ >100) 휴식;
console.log(x)

이것은 이미 의사 난수 생성기처럼 보입니다. 그리고 동일한 Math.random()은 PRNG입니다. 이에 대해서는 잠시 후에 이야기하겠습니다. 게다가 첫 번째 숫자를 얻을 때마다 다릅니다.실제로 이러한 간단한 예를 사용하면 더 복잡한 난수 생성기가 어떻게 작동하는지 이해할 수 있습니다.

그리고 기성 알고리즘도 있습니다. 예를 들어, 그 중 하나를 살펴보겠습니다. 이는 선형 합동 PRNG(LCPRNG)입니다.

선형 합동 PRNG 선형 합동 PRNG(LCPRNG)는 의사 난수를 생성하는 일반적인 방법입니다. 암호학적으로 강력하지 않습니다. 이 방법은 공식으로 주어진 일부 자연수 m에 대해 선형 순환 수열의 항을 계산하는 것으로 구성됩니다. 결과 시퀀스는 시작 번호(즉, 선택)에 따라 달라집니다. 씨앗. ~에다른 의미

시드는 다양한 난수 시퀀스를 생성합니다. JavaScript에서 이러한 알고리즘을 구현하는 예:<30; i++) console.log(rand())
상수 a = 45; const c = 21; const m = 67; var 시드 = 2; const rand = () => 시드 = (a * 시드 + c) % m; for(i=0; 나는

많은 프로그래밍 언어가 LCPRNG를 사용합니다(그러나 정확히 이 알고리즘(!)은 아닙니다).

또 다른 속성은 재현성입니다. 일부 구현에서는 시드를 지정할 수 있으며 이는 시퀀스를 반복해야 하는 경우 매우 유용합니다. 예를 들어 테스트에서는 재생산이 필요합니다. 그리고 보안 RNG가 필요하지 않은 것들도 많이 있습니다.

Math.random() 작동 방식

Math.random() 메서드는 = crypto.getRandomValues(new Uint8Array(1)); 범위에서 의사 난수 부동 소수점 숫자를 반환합니다. console.log(rvalue)
그러나 Math.random() PRNG와 달리 이 방법은 리소스를 많이 사용합니다. 사실 이 생성기는 OS의 시스템 호출을 사용하여 엔트로피 소스(mac 주소, CPU, 온도 등)에 액세스합니다.