당신은 주제를 찾고 있습니까 “랜덤 함수 – 컴퓨터가 만드는 랜덤숫자의 진실(feat.의사 난수) – [高지식] 거니“? 다음 카테고리의 웹사이트 ppa.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://ppa.maxfit.vn/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 코딩하는거니 이(가) 작성한 기사에는 조회수 69,171회 및 좋아요 1,298개 개의 좋아요가 있습니다.
랜덤 함수 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 컴퓨터가 만드는 랜덤숫자의 진실(feat.의사 난수) – [高지식] 거니 – 랜덤 함수 주제에 대한 세부정보를 참조하세요
이번 고지식 열여덟 번째 영상에서는 컴퓨터가 생성하는 랜덤넘버/난수가 어떻게 만들어지는지, 과연 정말 추적이 불가능한 순수한 난수인지? 혹은 하드웨어적으로 더욱 예측이 힘든 난수를 만드는 방법은 무엇인지에 대하여 얘기합니다.
자연에서 정말 쉽게 접할 수 있는 무작위라는 특성이 컴퓨터에는 어떻게 훈련이 되어있는지 확인해보세요!
———————————————————
다른 고지식 시리즈도 시청해보세요! https://tinyurl.com/yxbnlb9e
거니 인스타그램 (근황/미리보기) https://tinyurl.com/yyrfqq5l
페이스북 페이지 https://tinyurl.com/y8t5a5au
——————————————————
#난수 #랜덤 #무작위
랜덤 함수 주제에 대한 자세한 내용은 여기를 참조하세요.
난수생성 – 나무위키
컴퓨터에서 쓰는 시드값은 진짜 랜덤이라 보아도 무방하고, C언어 `rand()` 함수를 정말 시간 값만으로 초기화하는, 수십 년도 더 된 알고리즘을 쓰는 …
Source: namu.wiki
Date Published: 11/4/2021
View: 5277
[C언어/C++] 랜덤함수(rand, srand, time) 사용법 & 예제 (난수 …
C/C++로 개발을 하다 보면 종종 난수가 필요할 경우가 많습니다. C/C++에서는 이처럼 난수를 생성하는 rand() 함수와 srand() 함수가 있습니다.
Source: coding-factory.tistory.com
Date Published: 8/10/2022
View: 1617
엑셀 Rand 함수 랜덤 함수 로 데이터 무작위 정렬 하기 뽑기
위에 표시된 ‘랜덤으로 정리할 문자’ 열의 ‘가’ ~ ‘하’ 값을 무작위로 정렬 하는 방법입니다. 순서는. ㅤ① RAND 함수사용해 난수 생성. ㅤ② 난수 기준 …
Source: comeinsidebox.com
Date Published: 5/2/2022
View: 2120
RAND 함수
이 문서에서는 Microsoft Excel의 RAND 함수에 사용되는 수식 구문과 이 함수를 사용하는 방법을 설명합니다. 설명. RAND는 0 이상 1 미만의 실수인 난수를 반환합니다 …
Source: support.microsoft.com
Date Published: 11/26/2022
View: 3206
RAND, RANDBETWEEN 함수 – 난수 구하기 – XLWorks
난수(random number)는 무작위로 생성되는 임의의 숫자를 말하는데 표본을 추출하거나 복권번호를 만들 때 사용할 수 있습니다.엑셀에서는 RAND …
Source: xlworks.net
Date Published: 3/24/2021
View: 5220
[C언어/C++] rand, srand, time 랜덤함수에 대해서 (난수생성)
안녕하세요. BlockDMask 입니다. 오늘은 C/C++로 개발할때 가끔 사용하는 랜덤한 수(난수)를 생성하는 함수에 대해서 알아보겠습니다. 랜덤한 값을 …
Source: blockdmask.tistory.com
Date Published: 6/24/2022
View: 4038
엑셀 랜덤함수 공식, RAND 함수, RANDBETWEEN … – FromInfo
엑셀 랜덤함수의 종류와 랜덤함수의 사용방법에 대해 살펴보겠습니다. 그리고 랜덤함수를 사용해서 1의 단위 랜덤숫자를 추출하는 방법뿐만 아니라, …
Source: frominfo.tistory.com
Date Published: 10/22/2021
View: 3018
[엑셀] Excel 랜덤 값 난수 구하는 함수 RAND, RANDBETWEEN
데이터를 다루다 보면 랜덤으로 값을 만들어야 하는 경우가 있습니다. 프로그래밍에서는 많이 사용되는 함수인데 일반적으로 사용하려면 조금 어렵 …
Source: tttap.tistory.com
Date Published: 2/30/2022
View: 6151
엑셀 랜덤함수 숫자 뽑기, 로또 조합기 만들기 – 웹의 온라인 이야기
엑셀(Excel) 난수는 사용자가 지정한 범위 숫자가 랜덤하게 나오는 함수이며 임의대로 숫자를 추출하여 채워줄수가 있답니다. 랜덤함수는 ‘ =RAND() ‘ …
Source: webonlinestory.tistory.com
Date Published: 11/14/2022
View: 1152
5.3.1 랜덤(random) 모듈 – 왕초보를 위한 Python
random() 함수는 0 이상 1 미만의 숫자 중에서 아무 숫자나 하나 뽑아서 돌려주는 일을 한답니다. 주사위처럼 1에서 6까지의 정수 중 하나를 무작위로 얻으려면 어떻게 …
Source: wikidocs.net
Date Published: 3/15/2021
View: 6598
주제와 관련된 이미지 랜덤 함수
주제와 관련된 더 많은 사진을 참조하십시오 컴퓨터가 만드는 랜덤숫자의 진실(feat.의사 난수) – [高지식] 거니. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.
주제에 대한 기사 평가 랜덤 함수
- Author: 코딩하는거니
- Views: 조회수 69,171회
- Likes: 좋아요 1,298개
- Date Published: 2019. 1. 31.
- Video Url link: https://www.youtube.com/watch?v=dzzryM3TtHk
[C언어/C++] 랜덤함수(rand, srand, time) 사용법 & 예제 (난수 생성)
C/C++로 개발을 하다 보면 종종 난수가 필요할 경우가 많습니다. C/C++에서는 이처럼 난수를 생성하는 rand() 함수와 srand() 함수가 있습니다. rand()함수는 난수의 생성 패턴을 한개로 설정하는 것이고 srand()함수는 난수의 생성 패턴을 여러개로 설정하는 차이가 있습니다. 이 함수들이 들어있는 헤더파일을 확인해보면 #define RAND_MAX 0x7fff라는 매크로 상수가 선언되어 있습니다. 즉 RAND_MAX는 0x7fff인데 이는 10진수로 32767입니다. 따라서 난수 의 범위는 0~32767가 되게 됩니다.
랜덤함수를 사용하여 난수 생성하기
헤더 파일
//C언어 #include
//rand(), srand() #include //time() //C++ #include //rand(), srand() #include //time() C언어에서 사용하는 랜덤 함수(rand)를 사용하려면
헤더 파일을, C++에서 사용하는 랜덤 함수인(srand)을 사용하려면 를 헤더를 포함시켜야 합니다. 그리고 이 난수 함수를 정말로 랜덤하게 사용하기 위해서는 seed값으로 현재시간을 넣어주어야 하기에 현재시간을 출력해줄 수 있는 헤더 파일도 포함하도록 합시다. 랜덤(rand) 함수 사용 예제
//C언어 #include
#include //C++ #include #include void main() { printf(“난수 : %d “, rand()); printf(“난수 : %d
“, rand()); printf(“난수 : %d
“, rand()); printf(“난수 : %d
“, rand()); printf(“난수 : %d
“, rand()); }
위의 예제에서 rand() 함수를 사용 난수를 5개를 출력하는 예제를 5번 실행시킨 결과입니다. 위의 그림을 보시면 한번 실행된 콘솔에서는 계속해서 난수가 변환되는 것을 보실 수 있습니다. 하지만 콘솔을 다시 실행시키면 초기화된 후 이전에 실행하여 구했던 난수들과 똑같은 값이 나왔습니다. 이렇게 된다면 콘솔을 재 실행시킬 때마다 같은 값이 나오게 되어 우리가 원했던 무작위 값과는 거리가 멀게 됩니다.
몇 번을 재 실행해도 같은 결과값이 나오는 이유는 컴퓨터에서 난수를 생성하는 방법 때문입니다. 컴퓨터에서는 난수를 생성하는 방법을 seed값을 두고 그 seed값을 특정 공식으로 구해서 계속해서 난수를 생성합니다. 특정 값을 같은 공식으로 계산하면 몇번을 실행해도 같은 값이 되겠지요.
랜덤(rand)함수에 seed값을 부여하는 srand 함수 사용 예제
//C언어 #include
#include //C++ #include #include void main() { srand(10); // seed값 부여 지정하지 않는다면 1 printf(“난수 : %d “, rand()); printf(“난수 : %d
“, rand()); printf(“난수 : %d
“, rand()); printf(“난수 : %d
“, rand()); printf(“난수 : %d
“, rand()); }
계속해서 난수의 값을 바꾸고 싶다면 rand함수의 seed값을 바꿔줘야 합니다. srand(seed) 함수에서 seed값을 설정할 수 있습니다. 참고로 srand함수를 사용하지 않는다면 자동으로 seed값은 1이 됩니다. 위의 예제에서 srand의 인자 값을 계속해서 바꾸어가며 실행시켜보세요. 그렇다면 각각 다른 난수들이 출력됩니다. 하지만 이 방법도 실제 사용하기에는 많이 부족합니다. 다른 난수의 값을 출력시키고 싶다면 수동으로 seed값을 계속해서 바꾸어주어야 하기 때문이죠. 그렇다면 자동으로 seed값이 바뀌게 할 수는 없을까요? 있습니다. 바로 현재시간을 seed값으로 넣으면 됩니다.
현재시간을 Seed값으로 부여하여 무작위 난수 출력하기
//C언어 #include
#include #include //C++ #include #include #include void main() { srand((unsigned int)time(NULL)); //seed값으로 현재시간 부여 printf(“난수 : %d “, rand()); printf(“난수 : %d
“, rand()); printf(“난수 : %d
“, rand()); printf(“난수 : %d
“, rand()); printf(“난수 : %d
“, rand()); }
위와 같이 seed값으로 현재 시간을 넣으면 초당 seed값이 계속해서 변화하기 때문에 실행할 때마다 랜덤한 난수의 값들을 얻을 수 있습니다.
% 나머지 연산자를 사용하여 난수의 범위 한정시키기
//C언어 #include
#include #include //C++ #include #include #include void main() { srand((unsigned int)time(NULL)); //seed값으로 현재시간 부여 // 난수 %10 = 난수의 범위 0~9까지 한정 printf(“난수 : %d “, rand() % 10); printf(“난수 : %d
“, rand() % 10); printf(“난수 : %d
“, rand() % 10); printf(“난수 : %d
“, rand() % 10); printf(“난수 : %d
“, rand() % 10); }
rand함수의 난수 범위는 0~32767로 매우 광범위합니다. 이러한 난수들의 범위를 한정시키고 싶다면 나머지 연산자를 활용하여 난수의 나머지를 구하여 활용하면 됩니다.
엑셀 Rand 함수 랜덤 함수 로 데이터 무작위 정렬 하기 뽑기
여러가지 데이터 에서 무작위로 값을 얻고 싶을 때가 있습니다.
예를 들자면 뽑기 등이 그에 해당 합니다.
엑셀에서 Rand 함수를 사용해서 간단하게 적용이 가능 합니다.
해당 방법을 안내합니다.
1. RAND 함수
RAND 함수에 관하여 정리 합니다.
【안 내】 RAND 함수의 기본적인 사용방법
엑셀 랜덤 함수 예저
오늘 설명에 사용될 예제 입니다.
위에 표시된 ‘랜덤으로 정리할 문자’ 열의 ‘가’ ~ ‘하’ 값을 무작위로 정렬 하는 방법입니다.
순서는
ㅤ① RAND 함수사용해 난수 생성
ㅤ② 난수 기준으로 정렬
이렇게 설명 합니다.
【참 고】 엑셀 오피스 365 기준 설명, 맥,윈도우 모든 버전에서 사용가능
1.1. RAND 함수 사용해 난수 생성
RAND 함수를 사용 기준 값이 될 난수 생성.
rand 함수 입력
1. ‘RAND()’ 이 수식을 셀에 그대로 입력
ㅤ
난수 생성 및 지정셀 모두 등록
2. 함수 입력 시 바로 ‘난수’ (1) 생성 완료
3. 전체 셀 등록을 위해 아래로 마우스 드래그(2) 진행
ㅤ
지정 셀 모두 난수 생성 완료
4. 지정된 셀 모두 1 미만 난수 생성 완료
1.2. 난수 기준으로 정렬
생성된 난수 기준으로 사용할 항목을 정렬을 합니다.
방법은
• 정렬 리본 메뉴 사용
• 컨텍스트 메뉴 사용
• 필터 메뉴 사용
세가지 방법이 있습니다.
순서대로 정리 합니다.
1.2.1. 정렬 리본 메뉴 사용
상단의 리본 메뉴에서 진행 하는 방법입니다.
적용 항목 정렬 진행
1. ‘랜덤으로 정리할 문자’ 열 과 rand 함수가 적용된 ‘난수’ 열 모두 드래그 (1) 범위 선택
2. 상단 [데이터] (2) 탭 선택
3. ‘정렬 및 필터’ 그룹 [정렬] (3) 선택
4. [정렬] 창 실행
5. [정렬 기준] 을 rand 함수가 적용된 ‘난수’ 열 (4) 선택
6. [확인] (5) 클릭
ㅤ
난수 기준 정렬
‘랜덤으로 정리할 문자’ 열의 ‘가’ ~ ‘하’ 값이 정렬 리본 메뉴를 사용해 난수 기준으로 새롭게 정렬 완료 되었습니다.
1.2.2. 컨텍스트 메뉴 사용
마우스 우클릭 해서 나오는 컨텍스트 메뉴에서 실행 하는 방법 입니다.
컨텍스트 메뉴 정렬 진행
1. rand 함수가 적용된 ‘난수’ 열 (1) 선택
2. 마우스 우클릭 (2) 후 컨텍스트 메뉴 실행
3. [정렬(O)] 선택
4. [숫자 오름차순 정렬(S)] (3) 선택
ㅤ
정렬 선택 영역 확장
5. [정렬 경고] 창 실행
6. [선택 영역 확장(E)] (1) 선택
7. [정렬(S)] (2) 클릭
ㅤ
난수 기준 정렬
‘랜덤으로 정리할 문자’ 열의 ‘가’ ~ ‘하’ 값이 컨텍스트 정렬 메뉴를 사용해 난수 기준으로 새롭게 정렬 완료 되었습니다.
1.2.3. 필터 메뉴 사용
엑셀의 필터 메뉴를 사용해 실행 하는 방법 입니다.
엑셀 필터 메뉴
1. 정렬할 데이터 의 ‘헤더’ (1) 항목 선택
2. [데이터] (2) 메뉴 선택
3. ‘정렬 및 필터’ 그룹 [필터] (3) 선택
ㅤ
필터 적용 후 정렬 메뉴
4. ‘필터박스’ (1) 선택
5. [숫자 오름차순 정렬(S)] (2) 선택
ㅤ
난수 기준 정렬 필터사용
‘랜덤으로 정리할 문자’ 열의 ‘가’ ~ ‘하’ 값이 필터를 사용해 난수 기준으로 새롭게 정렬 완료 되었습니다.
1.3. 난수 정렬 원리
위에서 설명한 엑셀 난수 정렬 원리에 대해 알아봅니다.
난수 정렬 원리
rand 함수 가 적용된 기준 셀 [C2] 항목의 데이터를 정렬 하면 좌측 ‘랜덤으로 정리할 문자’ 셀 [B:B] 도 기준이 확장 되어 모두 동일하게 적용 되는 방식 입니다.
쉽게 말해 기준이 RAND() 함수가 있는 열이 고 그 기준 이동시 연결된 셀들은 같이 움직이는 것입니다.
【중 요】 엑셀에서 RAND() 와 같이 랜덤한 값을 가져오는 경우 셀에 입력 , 마우스 클릭등 추가 동작 이 발생 하면 자동으로 다른 값이 추출됩니다.
2. 마무리
적용 방법이 많아 글이 길어진 부분이 있습니다.
하지만 사용방법은 매우 간단하니 지정된 값에서 무작위로 값을 추출 해야하는 상황이라면 사용해 보시길 바랍니다.
3. 참고
• 엑셀 스파크 라인 사용하는 방법과 엑셀 데이터 자료 시각화 하기
• RAND 함수_마이크로 소프트 공식
RAND 함수
이 문서에서는 Microsoft Excel의 RAND 함수에 사용되는 수식 구문과 이 함수를 사용하는 방법을 설명합니다.
설명 RAND는 0 이상 1 미만의 실수인 난수를 반환합니다. 워크시트를 계산할 때마다 새로운 난수가 반환됩니다. 참고: Excel 2010부터 Excel에서는 Mersenne Twister 알고리즘(MT19937)을 사용하여 난수를 생성합니다.
구문 RAND() RAND 함수 구문에는 인수가 없습니다.
주의 a와 b사이의 실수인 난수를 만드는 방법은 다음과 같습니다. =RAND()*(b-a)+a RAND를 사용하여 난수를 만들고 셀이 계산될 때마다 만들어진 난수가 변경되지 않도록 하려면 수식 입력줄에 =RAND()를 입력하고 F9 키를 눌러 수식을 난수로 변경합니다. 수식은 계산하고 값만 남기게 됩니다.
예제 다음 표의 예제 데이터를 복사하여 새 Excel 워크시트의 A1 셀에 붙여넣습니다. 수식의 결과를 표시하려면 수식을 선택하고 F2 키를 누른 다음 Enter 키를 누릅니다. 필요한 경우 열 너비를 조정하여 모든 데이터를 볼 수 있습니다. 수식 설명 결과 =RAND() 0보다 크거나 같거나 1보다 작은 난수 일정하지 않음 =RAND()*100 0보다 크거나 같거나 100 미만의 난수 일정하지 않음 =INT(RAND()*100) 0보다 크거나 같거나 100보다 작은 임의의 정수 일정하지 않음 참고: 워크시트가 다른 셀에 수식이나 데이터를 입력하거나 수동으로 다시 계산(F9누르기)하여 워크시트가 다시 계산되는 경우 RAND 함수를 사용하는 모든 수식에 대해 새 임의 번호가 생성됩니다.
RAND, RANDBETWEEN 함수 – 난수 구하기
엑셀에서 이메일 보내기
자주 사용하는 함수
엑셀 함수 개요
엑셀에서 Database 사용하기 강좌
엑셀에서 이메일 보내기
자주 사용하는 함수
엑셀 함수 개요
엑셀에서 Database 사용하기 강좌
엑셀에서 이메일 보내기
자주 사용하는 함수
엑셀 함수 개요
엑셀에서 Database 사용하기 강좌
C++] rand, srand, time 랜덤함수에 대해서 (난수생성)
반응형
안녕하세요. BlockDMask 입니다.
오늘은 C/C++로 개발할때 가끔 사용하는 랜덤한 수(난수)를 생성하는 함수에 대해서 알아보겠습니다.
랜덤한 값을 가지고올때 필요한데요. 그럼 시작해보겠습니다.
1. rand 함수원형과 사용법
1) 헤더파일
– C언어
/ C++ 2) 함수원형
– int rand (void)
3) rand 함수가 하는일
: Generate random number [0 ~ RAND_MAX]
: 랜덤한 숫자를 반환합니다.
: 그 범위는 0~ RAND_MAX 까지인데요, RAND_MAX라는 것은 stdlib.h 헤더파일에 매크로로 작성되어있습니다.
: RAND_MAX = 32767
: 결국 rand() 함수가 반환하는 값은 0~32767 사이의 값 이라는 것입니다.
하지만, rand() 함수는 프로그램이 생성될때 딱 값이 정해지기 때문에 프로그램을 여러번 실행시켜도 동일한 값이 나옵니다.
확인해 볼까요?
4) rand() 함수 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 //C언어만 사용하시는 분들은 해당 헤더만 포함하세요. //#include
//#include //#include //C++용 헤더 #include < iostream > #include < cstdlib > #include < ctime > using namespace std ; int main( void ) { printf ( “rand : %d ” , rand()); printf ( “rand : %d
” , rand()); printf ( “rand : %d
” , rand()); printf ( “rand : %d
” , rand()); printf ( “rand : %d
” , rand()); printf ( “rand : %d
” , rand()); printf ( “rand : %d
” , rand()); printf ( “rand : %d
” , rand()); printf ( “rand : %d
” , rand()); system( “pause” ); return 0 ; } cs
5) 결과1,2
: 보시는 바와같이 프로그램을 아무리 많이 실행시켜도 동일한 숫자가 나오게 됩니다.
: 아니이게 무슨 랜덤함수입니까!!!!!!!!!!!!!!!!!!!!!!!
: 그럼 srand는 뭐가 다른가?? 궁금하시죠? 아래쪽으로 내려가 보시죠.
2. srand 함수원형과 사용법
1) 헤더파일
– C언어
/ C++ 2) 함수원형
– void srand (unsigned int seed)
3) srand 함수가 하는일
: Initialize random number generator.
: rand 함수에 사용될 수를 초기화 하는일인데요, 이 초기화를 매개변수로 받는 seed 값을 이용해서 합니다.
: rand 함수는 내부적으로 어떤 srand의 매개변수로 들어온 seed 값과 매칭되는 숫자가 정해집니다. 그래서 seed 값에 의해서 rand 함수의 결과값이 변할 수 있습니다.
4) 그럼 seed 값을 이용해서 rand() 값을 초기화 해보겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 //C언어만 사용하시는 분들은 해당 헤더만 포함하세요. //#include
//#include //#include //C++용 헤더 #include < iostream > #include < cstdlib > #include < ctime > using namespace std ; int main( void ) { printf ( “1. rand() ” ); printf ( “rand : %d
” , rand()); printf ( “rand : %d
” , rand()); printf ( “2. rand()와 동일한 시드의 srand()
” ); srand( 32323 ); printf ( “rand : %d
” , rand()); srand( 32323 ); printf ( “rand : %d
” , rand()); srand( 32323 ); printf ( “rand : %d
” , rand()); printf ( “3. rand()와 4개의 시드 srand()
” ); for ( int i = 0 ; i < 4 ; + + i) { srand(i); printf ( "rand : %d " , rand()); } system( "pause" ); return 0 ; } Colored by Color Scripter cs 5) 결과 : 혹시 뭔가 이상하지 않나요? srand의 seed값이 일정한것이 들어갔을때 일정한 rand 값이 나오지 않나요? : 이게 무슨 랜덤함수입니까!!!! 반만 랜덤이지!!!!!!! : 이런식으로 초기화를 하면, 프로그램이 만들어질때 이미 어떤 seed에 대한 rand 값이 정해져 있기 때문에 동일한 seed 를 이용하면 우리가 원하는 '진짜' 랜덤 함수를 만들 수 없습니다. 그렇기 때문에 프로그램 실행중에(런타임동안) 항상 변하는 seed 값을 이용해서 srand를 해줄 필요가 있겠죠??? : 그래서 사람들이 '음.. 항상 변화하는 숫자가 없을까? 절대 이전에 들어온 값과 동일하지 않고?' 이런 생각을 하다가 아! 시간을 이용하면 되겠다 싶어서, 시간을 seed 값으로 넣는 것입니다. 그럼 아래쪽으로 내려가서 time 함수를 한번 볼까요? : 아! time함수를 보러가기전에 stdlib.h에 선언되어있는 rand, srand, RAND_MAX을 한번 확인해 보고 가시죠. 이렇게 함수의 원형을 보는 것도 매우 중요합니다. 3. time 함수 원형과 사용법 1) 헤더파일 - C언어
/ C++ 2) 함수원형
– time_t time (time_t* timer);
3) time 함수가 하는일
: UCT 기준 1970년 1월 1일 0시 0분 0초 부터 경과된 시간을 초(sec)로 반환하는 함수.
: 이렇게 초로만 반환을해서 연도, 월, 일, 시, 분, 초로 나타내기 위해서는 다른 작업이 필요하거나, 다른 함수를 이용해서 날짜를 얻어올 수 있지만, 우리가 지금 원하는 것은 시간이 아니라 항상 변화하는 숫자일 뿐 입니다.
: 그렇기 때문에 해당 포스팅에서는 time함수를 시간이 아닌 항상 변화하는 숫자로 만 사용하겠습니다.
4) time 함수 출력 값 테스트
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 //C언어만 사용하시는 분들은 해당 헤더만 포함하세요. //#include
//#include //#include //C++용 헤더 #include < iostream > #include < cstdlib > #include < ctime > using namespace std ; int main( void ) { printf ( “%lld ” , time( NULL )); system( “pause” ); return 0 ; } cs
5) 결과
6) 어? time_t가 반환형인데 time_t가 뭘까? 궁금하시죠?
: 그럼 코드를 따라 가봅시다. 쭉쭉 코드를 따라가다 보면 이렇게 나옵니다.
: 이렇게 time_t는 32비트 컴퓨터인가 64비트 컴퓨터인가를 구분을 두어서 타입을 정의하고 있습니다.
: __time64_t는 마우스오버를 해보면 long long 타입임을 알 수 있습니다.
4. 랜덤함수 예제 (rand, srand, time 함수를 이용)
1) 랜덤한 수를 생성하는 방법
– 랜덤한 값은 아무 값이잖아요. 0~999999999999999999 까지의 숫자 말고, 우리가 1~10까지의 랜덤함 값만 원한다면 어떻게 해야할까요?
– 우리가 쓰는 방법은 “%”를 이용하는 겁니다. 네 맞습니다 %는 어떤 수를 나누었을때의 나머지를 얻을때 사용하는 연산자 입니다.
: 10 % 3의 결과는 1 입니다. 몫이 3이겠고 나머지는 1이니까요. 그렇다면 조금 생각을 바꿔볼까요?
우리가 0~10 까지의 범위 내의 랜덤한 값을 얻고 싶다고 할때, 어마어마하게 큰 수를 10으로 나누면 그 나머지가 0~9 사이의 값이 나오겠죠? 딱 10개.! 아하! 이걸로 구하는 거구나!
: 4214142140 % 10 -> 0
: 4214142141 % 10 -> 1
: 4214142142 % 10 -> 2
: 4214142143 % 10 -> 3
: 4214142144 % 10 -> 4
: 4214142145 % 10 -> 5
: 4214142146 % 10 -> 6
: 4214142147 % 10 -> 7
: 4214142148 % 10 -> 8
: 4214142149 % 10 -> 9
이렇게 0~9까지의 수만 나오겠죠? 이 모든 값에 +1 만 해주면 우리가 원하는 1~10 사이의 랜덤 값을 얻을 수 있습니다.
그럼 우린
첫번째로, time을 seed로 가지고있는 srand 함수를 부르고
두번째로, rand() 함수를 이용해서 매우 완벽한 랜덤한 값을 가지고 오고
세번째로, 그 랜덤한 값을 % n 으로 나머지를 구해서 0~n-1 까지의 범위의 랜덤값을 얻는 것 입니다.
2) 랜덤함수 구현 예제.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 //C언어만 사용하시는 분들은 해당 헤더만 포함하세요. //#include
[<개인공부>/[C언어 \ C++ 언어]] – [C++] const_cast (타입 캐스트 연산자) [<개인공부>/[C언어 \ C++ 언어]] – [C++] dynamic_cast (타입캐스트 연산자)//#include //#include //C++용 헤더 #include < iostream > #include < cstdlib > #include < ctime > using namespace std ; int main( void ) { srand(( unsigned int )time( NULL )); for ( int i = 0 ; i < 20 ; + + i) { int num = rand(); printf ( "난수 : %d\t나머지 : %d " , num, ( int )num % 10 ); } system( "pause" ); return 0 ; } Colored by Color Scripter cs : C++유저 분들계서는 명시적 형변환시에 위예제에서같이 ( ) 괄호 말고 static_cast와 같은 캐스팅 연산자를 통해서 사용하시길 추천드립니다. 관련문서는 여기 있습니다. [<개인공부>/[C언어 \ C++ 언어]] – [C++] static_cast (타입캐스트 연산자) 3) 결과.
: 와우! 이렇게 해서 랜덤함수, 랜덤함수를 구현하는 방법에 대해서 알아보았습니다. “참 쉽쥬?”
감사합니다. 하트 부탁드려요.
질문이 있으면 댓글 남겨주세요.
반응형
엑셀 랜덤함수 공식, RAND 함수, RANDBETWEEN 함수, 소수점, 10단위, 100단위 랜덤 추출 숫자 뽑기
엑셀 랜덤함수의 종류와 랜덤함수의 사용방법에 대해 살펴보겠습니다.
그리고 랜덤함수를 사용해서 1의 단위 랜덤숫자를 추출하는 방법뿐만 아니라, 10의 단위 랜덤숫자, 100의 단위 랜덤숫자를 추출하는 방법, 랜덤 소수점 숫자 추출하는 방법에 대해서도 알아보겠습니다.
이 글에서 설명드리는 내용은 엑셀에서 랜덤함수를 사용하는 방법이 주가 되지만, 큰 틀에서 보면 엑셀 뿐만 아니라, C, C++, C#, Java, Visual Basic 등의 프로그래밍 언어를 이용해서 랜덤숫자를 만드는 방법과도 동일합니다.
프로그래밍 언어를 공부하시는 분이라면 본 글에서 설명드리는 랜덤함수 공식을 이해하시고, 외워 두시는 것도 좋지 않을까 생각합니다.
본 글에서는 랜덤함수 중 일반적인 형태인 RAND 함수 사용 방법을 우선 설명 드리고, 아래쪽에서 RANDBETWEEN 함수를 사용하는 방법에 대해 설명 드리도록 하겠습니다.
당장 랜덤함수를 이용해서 랜덤 숫자를 추출하고자 하신다면 맨 아래쪽의 RANDBETWEEN 함수를 사용한 방법을 우선 사용하시고, 시간 되실 때 랜덤함수를 구하는 원리 및 공식도 읽어보시기 바랍니다.
엑셀 랜덤함수의 종류
엑셀에서 사용하는 랜덤함수로는 RAND함수와 RANDBETWEEN가 있습니다.
하지만 대부분의 경우 랜덤함수 독자적으로 사용되기 보다는 절사함수인 INT 함수나 ROUNDDOWN 함수, TRUNC 함수와 함께 사용하는게 일반적입니다.
이 글에서는 절사함수 중 INT 함수를 이용해서 랜덤숫자를 추출하는 방법에 대해 설명 드리겠습니다.
랜덤 숫자 추출 원리
엑셀에서 랜덤숫자를 추출하고자 합니다.
그런데 랜덤숫자란 무엇일까?
랜덤숫자를 우리말로 바꾸면 무작위 숫자 또는 임의의 숫자라는 뜻입니다.
랜덤은 Random으로 “무작위” 또는 “임의의”의 뜻을 가지고 있습니다.
그렇다면 엑셀을 비롯해서 컴퓨터는 랜덤 숫자를 어떻게 만들어낼까?
사람에게 1부터 100까지의 숫자 중 하나를 생각하라고 한다면 어떤 숫자가 나올지 알 수가 없습니다.
사람에 따라서도 다르고, 그 때 그 때 상황에 따라서도 다른 숫자를 얘기하게 되지요.
그러면 컴퓨터는 어떻게 랜덤숫자를 만들어낼까?
컴퓨터에는 수학에서 사용하는 난수표라는 것이 입력되어 있습니다.
쉽게 말하면 랜덤 숫자라고는 말하지만 엄밀히 따지면 이미 작성해 놓은 랜덤 숫자표, 즉 난수표의 값을 순서대로 보내주고 있는 것이지요.
하지만 난수표 숫자의 개수가 상당히 많은데다가 임의의 장소에서부터 시작하기 때문에 매번 다른 숫자를 내보내는 것처럼 보이는 것이지요.
RAND 함수를 사용한 랜덤숫자 추출 방법
엑셀을 비롯한 프로그래밍 언어에서 랜덤함수를 사용할 경우 출력되는 숫자의 범위는 0에서 1 사이의 숫자입니다.
대충 생각한다면 위의 설명으로도 충분하지만 엄밀히 따지면 좀 더 상세한 설명이 필요합니다.
위의 그림처럼 엑셀에서 RAND 함수의 인수 설명을 보면 다음과 같습니다.
“0보다 크거나 같고 1보다 작은, 균등하게 분포된 난수를 구합니다.”
난수를 구할 때 나올 수 있는 가장 작은 수는 0 입니다.
난수에서 나올 수 있는 가장 큰 수는 1 이 아니라, 1보다 작은 수입니다.
즉 0.999999… 가 되는 것이지요.
그렇기 때문에 난수로 나올 수 있는 숫자의 범위는 0 ~ 0.9999이며, 수식으로 설명한다면 다음과 같습니다.
0 ≦ 랜덤 숫자 < 1 우선 엑셀에서 랜덤함수인 RAND() 함수를 사용해서 랜덤 숫자를 구해 보도록 하겠습니다. 위의 그림처럼 A1 셀에 =RAND() 라고 입력하겠습니다. 본 글에서는 함수마법사의 사용방법은 모두 아실 것이라 생각하고, 간단하게 수식으로만 설명 드리겠습니다. RAND() 함수를 사용해서 랜덤숫자를 구했더니 0.675224 라는 숫자가 나왔네요. 저의 컴퓨터에서는 위의 숫자가 나왔지만 여러분의 경우는 다른 숫자가 나올 것입니다. 해당 셀이 들어 있는 열의 너비를 넓히면 소수점 이하 숫자를 더 길게 볼 수 있습니다. 저의 경우 0.675224234라고 나오네요. 또 다른 랜덤 숫자를 보고자 할 경우 아래의 방법 중 하나를 이용할 수 있습니다. 1. F9키를 누른다. 2. 아무 셀이나 마우스로 더블클릭 후 엔터를 입력하거나 다른 셀을 클릭한다. 3. F2키를 눌러서 셀 편집상태로 갔다가 엔터를 누른다. 지금은 랜덤숫자를 테스트하는 것이 목적이므로 수동계산 단축키인 F9키를 사용하는 것으로 설명하도록 하겠습니다. F9키를 누를 때마다 매번 다른 숫자가 나오게 됩니다. 여기에서 나올 수 있는 숫자의 범위는 0 ~ 0.999999 이지만, 실제적으로 0을 보는 일은 로또에 당첨될 확률보다도 높지 않을까 싶네요. 위의 그림을 기준으로 랜덤숫자를 구하는 방법에 대해 설명 드리겠습니다. 위의 그림에서는 총 4가지의 예를 들어서 랜덤숫자를 구하고 있습니다. 첫 번째는 1부터 3까지의 숫자 중 하나를 구하는 것이고, 두 번째는 주사위의 숫자처럼 1부터 6까지의 숫자 중 하나를 구하는 것이며, 세 번째와 네 번째는 50부터 60, 100부터 200까지의 숫자 중 하나를 구하는 것입니다. 이해를 돕기 위해서 C열에는 랜덤숫자가 총 몇 가지가 나올 수 있는지 개수를 구해 놓았습니다. 개수를 구할 때는 끝 숫자 - 시작 숫자를 구한 다음 1을 더해 주어야 됩니다. 예를 들어서 1부터 3까지의 경우 1, 2, 3으로 총 3가지이지만, 3-1은 2가 되므로 여기에 1을 더해 주어야 합니다. D4셀의 수식을 보겠습니다. 수식은 F4셀을 참조하시기 바랍니다. =INT(RAND()*C4)+A4 위의 수식을 풀어서 쓰면 다음과 같습니다. =INT(RAND()*개수)+시작 숫자 위의 수식에서 사용되는 INT 함수는 정수라는 뜻의 Integer 라는 단어에서 따 온 함수로 소수점 이하를 절사하는 함수입니다. 예를 들어서 =INT(RAND())라는 수식에 랜덤함수를 이용해 나온 숫자가 0.675224인 경우 소수점 이하를 절사하므로 0이 되겠지요. 우리가 원하는 값은 0이 아니므로 랜덤숫자에 우리가 구하고자 하는 숫자의 개수를 곱해줍니다. 예를 들어서 개수가 3인 경우에 RAND 함수를 통해 나올 수 있는 숫자의 범위는 0부터 0.9999...까지입니다. 이 숫자에 개수 3을 곱하게 되면 숫자의 범위는 0부터 2.9999...까지입니다. 여기에 INT 함수를 사용하여 소수점을 제거하게 되면 0과 1, 2가 나오게 됩니다. 총 3가지의 숫자가 나오네요. 하지만 우리가 원하는 숫자는 1, 2, 3입니다. 즉 숫자의 개수는 맞지만, 시작 숫자가 다르네요. 그래서 위의 수식 끝 부분에 있는 것처럼 시작 숫자를 더해 주면 되는 것입니다. 랜덤함수를 사용할 때 특히 괄호에 주의하시기 바랍니다. 괄호의 위치가 달라지면 결과도 달라지니까요. 정리해 보면 =INT(RAND()*개수)+시작 숫자 라는 공식을 이용하면 원하는 랜덤숫자를 구할 수 있다는 것입니다. 지금까지도 참 복잡한 수식으로 왔는데 조금 더 복잡하게 들어가 보겠습니다. 저의 경우 이해를 돕기 위해 개수를 별도의 셀에 계산해 두었지만, 일반적으로는 수식에서 개수까지 구하게 됩니다. 그래서 개수를 구하는 수식을 포함해서 수식을 다시 만들어 보겠습니다. 개수 = 끝 숫자-시작 숫자+1입니다. 위의 수식에 개수 부분을 대입해 보면 다음과 같습니다. =INT(RAND()*(끝 숫자-시작 숫자+1))+시작 숫자 덧셈과 곱셈의 계산 순서가 바뀌면 안 되므로 개수 부분을 괄호로 구분해 주어야 합니다. 위의 수식을 이용해서 1부터 3까지의 숫자 중 랜덤 숫자를 추출하게 된다면 =INT(RAND()*(3-1+1))+1 이 되겠네요. 위의 수식 중 INT 함수는 소수점 이하를 제거하는 절사함수입니다. 그런데 여기에 반올림 함수인 ROUND 함수를 사용하면 어떻게 될까요? 결과는 비슷해 보이지만, 실제로 나올 수 있는 숫자의 범위 및 비율이 달라집니다. 상세한 설명을 드릴 경우 설명이 너무 길어질 것 같아서 그림으로만 대체하도록 하겠습니다. 랜덤함수를 사용해서 랜덤숫자를 추출하실 때는 반드시 반올림 함수가 아닌 절사함수를 사용하시기 바랍니다. 랜덤함수 공식 지금까지 다소 복잡하게 왔는데요. 정리해 보면 2가지 공식으로 정리할 수 있습니다. =INT(RAND()*숫자 개수)+시작 숫자 =INT(RAND()*(끝 숫자-시작 숫자+1))+시작 숫자 위의 공식 중 위쪽은 숫자의 개수를 별도의 셀에서 계산할 경우이고, 아래의 공식은 숫자의 개수까지 모두 구하는 공식으로 2개의 공식은 같은 공식입니다. 위의 공식은 엑셀 뿐만 아니라, 프로그래밍 언어를 사용해서 랜덤 숫자를 추출할 때도 적용되는 공식입니다. 위의 공식에 내가 구하고자 하는 랜덤숫자의 시작 숫자와 끝 숫자만 넣어주면 1의 단위 랜덤 숫자는 얼마든지 구할 수 있답니다. 상세하게 설명하려다 보니 랜덤숫자 구하는 4가지의 예제 중 첫 번째만 설명 드리다가 여기까지 왔네요. 하지만 2번째부터 4번째까지도 같은 개념이므로 부연설명 없이 다음 단계로 넘어가도록 하겠습니다. RAND 함수를 활용한 10단위 랜덤 숫자 만들기 지금까지는 가장 일반적인 랜덤 숫자 추출 방법에 대해 살펴봤습니다. 이번에는 10, 20, 30처럼 10 간격의 랜덤숫자를 추출하는 방법에 대해 설명드리겠습니다. 위에서 랜덤함수 사용방법에 대해 충분히 설명 드렸으므로 이미지를 참고하시면 충분하리라 생각되어 상세한 설명은 생략하도록 하겠습니다. 위에서 설명 드린 부분과 차이가 있다면 숫자의 개수를 구하는 부분이 조금 복잡해졌다고 할 수 있겠네요. 개수 수식 =(B4-A4)/10+1 랜덤 숫자 수식 =INT(RAND()*C4)*10+A4 RAND 함수를 활용한 100단위 랜덤 숫자 만들기 위의 10단위 랜덤 숫자를 구하는 방식처럼 100단위 랜덤 숫자를 구할 때도 숫자의 개수를 구하는 부분과 RAND 함수를 통해 구한 랜덤 숫자에 절사를 한 후 곱하는 값에만 차이가 있답니다. 개수 수식 =(B4-A4)/100+1 랜덤 숫자 수식 =INT(RAND()*C4)*100+A4 RAND 함수를 활용한 0.1단위 랜덤 숫자 만들기 랜덤 숫자를 구할 때 소수점 랜덤 숫자를 추출하는 방법을 몰라서 고민하는 분들이 많으신 것 같더군요. 그래서 소수점 랜덤 숫자 추출방법도 만들어봤습니다. 위의 경우처럼 숫자의 개수 부분과 약간의 곱셈만 추가해 주면 쉽게 만들 수 있답니다. 개수 수식 =(B4-A4)/0.1+1 랜덤 숫자 수식 =INT(RAND()*C4)*0.1+A4 RAND 함수를 활용한 0.01단위 랜덤 숫자 만들기 소수점 랜덤 숫자 추출 방법 중 0.01 단위의 랜덤 숫자를 구하는 방법입니다. 개수 수식 =(B4-A4)/0.01+1 랜덤 숫자 수식 =INT(RAND()*C4)*0.01+A4 RANDBETWEEN 함수를 활용한 1단위 랜덤 숫자 만들기 엑셀에서 랜덤함수를 사용해 랜덤 숫자를 추출하는 방법으로 RAND 함수를 많이 사용합니다. 하지만 RAND 함수의 경우 사용방법이 복잡하고, 별도의 수식을 입력해야 하는 등 불편한 점이 많습니다. 반면 RANDBETWEEN 함수는 랜덤으로 추출하고자 하는 숫자의 시작 숫자와 끝 숫자만 입력해 주면 되므로 매우 쉽게 사용할 수 있는 함수입니다. 랜덤 숫자 수식 =RANDBETWEEN(A4,B4) 위의 수식에서도 알 수 있듯이 RANDBETWEEN 함수의 인수로 시작 숫자와 끝 숫자만 입력해 주면 된답니다. RANDBETWEEN 함수를 활용한 10단위 랜덤 숫자 만들기 RANDBETWEEN 함수를 사용해서 10단위 랜덤 숫자 추출하는 방법을 수식으로 만들어봤습니다. 하지만 이 경우는 별로 사용하지는 않을 것 같네요. 이렇게 복잡하게 계산해야 한다면 RAND 함수를 사용하는 것이 낫지 않을까 싶네요. 개수 수식 =(B4-A4)/10+1 랜덤 숫자 수식 =RANDBETWEEN(0,C4)*10+A4 랜덤함수를 활용한 로또번호 자동생성기 랜덤함수인 RANDBETWEEN 함수를 사용하는 방법으로 무엇이 있을까를 생각하다가 로또번호 자동생성기를 만들어봤습니다. 하지만 지금까지도 설명이 너무 길다보니 스크롤 압박이 심할텐데 계속해서 설명 드리기가 부담스럽네요. 그래서 개략적인 설명과 파일을 첨부하는 것으로 상세한 설명은 대신할까 합니다. A3 셀의 수식 =IF(COUNTIF($A$3:$A$8,A3)=1,A3,RANDBETWEEN(1,45)) 참고로 IF 함수는 조건에 따라 다른 값을 계산하기 위해 사용한 것이고, COUNTIF 함수는 중복되는 숫자가 있는지 체크하기 위해 사용한 것이랍니다. 로또 번호는 1부터 45까지의 숫자 중 6개의 숫자를 선택하는 것인데, 중복되는 숫자가 나와서는 안되기 때문에 조금 복잡한 과정을 거쳐야 하고, 수식도 다소 복잡하답니다. ◈ 사용방법 ① 파일⇒옵션⇒수식⇒계산옵션⇒반복 계산 사용에 체크 ② A3부터 E3까지 범위 지정 ③ E3 셀의 우측하단 ╋ 를 더블클릭 랜덤함수를 활용한 로또번호 자동생성기.xlsx
[엑셀] Excel 랜덤 값 난수 구하는 함수 RAND, RANDBETWEEN
데이터를 다루다 보면 랜덤으로 값을 만들어야 하는 경우가 있습니다. 프로그래밍에서는 많이 사용되는 함수인데 일반적으로 사용하려면 조금 어렵기도 하죠. 하지만 엑셀을 사용하면 여러 개의 셀에 동시에 다른 난수(Random Number) 값을 만들 수 있습니다. 임의의 숫자가 필요한 경우에 난수를 발생시키는 함수가 엑셀에 포함되어 있고 엑셀에서 난수를 구하는 방법은 다음 두 가지 함수로 가능합니다.
RAND – 0에서 1까지의 값을 반환합니다.
RANDBETWEEN – 2개의 파라미터(인수) 값의 사이 값을 랜덤으로 반환합니다.
RAND 함수의 경우 0에서 1까지의 값을 반환하기 때문에 어떠한 숫자를 대입해서 사용하기 편리하며 보통 많은 프로그래밍 언어에서 사용하는 방식입니다. 하지만 소수점으로 반환 되기 때문에 일반적으로 사용하기에 불편하고 조금 명시적이지 않을 수 있습니다. 어떤 범위의 값을 표현하려면 RANDBETWEEN 함수를 사용하면 조금 쉽게 값을 만들 수 있습니다.
RAND 함수
▼ 1. 우선 다음과 같이 셀에 =RAND() 라고 입력해줍니다.
Excel RAND 함수 사용
▼ 2. 입력후 엔터를 치면 0.313059라고 표시되는데요 0부터 1 사이의 랜덤 값입니다. 끝 부분을 마우스로 드래그해서 여러 값으로 복사해보겠습니다.
RAND 함수 복사
▼ 3. 모든 값이 다르게 표시되는 것을 확인할 수 있습니다. 전부 랜덤으로 정해진 난수의 값입니다.
Excel RAND 함수를 여러개 적용
▼ 4. 이번에는 F9 키를 눌러서 화면을 갱신해보겠습니다. 값이 모두 바뀌는 것을 볼 수 있습니다. 이 데이터를 이용해서 유용한 값을 만들 수 있습니다.
F9를 이용해서 화면 갱신
▼ 5. 만약 값이 매번 바뀌는걸 원치 않는다면 복사를 한뒤에 붙여 넣기 옵션에서 다음 버튼을 누르면 더 이상 바뀌지 않는 고정 상수 값으로 값이 채워집니다.
엑셀 붙여넣기 옵션
▼ 6. 만약 50에서 100 사이의 값을 랜덤으로 만들고 싶다면 다음과 같이 입력합니다. =RAND()*(100-50)+50
엑셀 RAND 특정 범위값 만들기
▼ 7. 이제 첫번째 셀은 50에서 100 사이의 값이 표시됩니다.
Excel 범위값 난수 생성
RANDBETWEEN 함수
▼ 8. 난수 값을 얻기 위해서는 특정 범위로 한정하고 싶다면 위의 방식을 써서 할 수 도 있겠지만 RANDBETWEEN 함수를 이용하면 조금 더 쉽게 만들 수 있습니다. RANDBETWEEN 함수는 두 가지 인수를 받습니다. RANDBETWEEN(시작 값, 종료 값)
BETWEEN 함수를 이용한 난수 생성
▼ 9. 다음은 RANDBETWEEN 함수를 이용해서 50부터 100까지의 난수를 출력한 모습입니다. 새로 값을 업데이트하려면 F9키를 누르면 됩니다.
RANDBETWEEN 함수를 이용해서 난수 여러개 만들기
지금까지 엑셀에서 랜덤으로 값을 만드는 방법을 알아봤습니다. 로또 복권과 같은 프로그램을 만들 때 유용하게 쓸 수 있을겁니다. 또한 데이터를 만들때 인위적으로 랜덤 한 값을 상수로 만들어서 데이터를 변형할 수도 있습니다. 이 유용한 RAND, RANDBETWEEN 함수를 유용하게 사용하시길 바랍니다.
엑셀 랜덤함수 숫자 뽑기, 로또 조합기 만들기
엑셀에서 랜덤함수는 업무뿐만 아니라 학업이나 로또 조합기등 다양한 용도로 활용이 가능한 기능이라고 할수가 있습니다. 랜덤함수 숫자 뽑기를 사용하여 매주 추첨하는 로또 조합기를 재미삼아 만들어서 사용해 볼수가 있답니다.
또한, 랜덤함수는 숫자뿐만 아니라 영문단어로도 이용이 가능하여 많은양의 단어를 암기할때에 똑같은 순서로 암기하는것보다 순서를 랜덤으로 바꾸어 놓는다면 독해나 일상회사에서든 효율적으로 단어를 암기해 볼수가 있답니다.
예제로 랜덤함수를 이용하여 로또 조합기를 만들기 위해서는 로또 번호는 1번 ~ 45번까지의 숫자를 추출하여 6개 숫자를 랜덤하게 만들어 보는것으로 사용자가 직접 조합기를 만들수가 있답니다.
■ 엑셀(Excel) 난수는 사용자가 지정한 범위 숫자가 랜덤하게 나오는 함수이며 임의대로 숫자를 추출하여 채워줄수가 있답니다. 랜덤함수는 ‘ =RAND() ‘ 이며숫자를넣는함수로 0 ~ 숫자 사이에 난수가 발생하게 된답니다.
예제로 아래의 문서와 같이 ‘ =RAND()*45 ‘ 를 입력할경우 0 ~ 45 사이의 임의 랜덤숫자가 발생하게 되지만 위 함수는 소숫점까지 나타나게 된답니다.
■ 두번째 랜덤함수는 ‘ =RANDBETWEEN(시작수, 끝수) ‘ 이며 시작숫자와 끝숫자를 지정하면 랜덤으로 난수가 발생하게 되는 함수이며 소숫점이 나타나지 않아 로또번호 조합기를 만들기 적절한 함수입니다.
예제로는 아래 문서와 같이 ‘ =RANDBETWEEN(1, 45) ‘ 를 입력하게 되면 1번부터 ~ 45번까지 사이에 랜덤하게 숫자를 자동으로 채워줄수가 있답니다.
■ 위처럼 두가지 랜덤함수가 있으며 =rand() 함수는 소숫점까지 나타나게 되며, =randbetween 함수는 소숫점이 나타나지 않는 차이점이 있답니다.
■ 로또 조합기를 만들기 위해서는 ‘ =RANDETWEEN() ‘ 함수를 적용하여 각셀에 복붙(Ctrl+C, V) 넣어주거나 핸들점을 마우스로 잡아서 끌어다가 모든셀에 적용해 주시면 된답니다.
■ 랜덤함수를 각셀에 채웠다면 ‘ F9 ‘ 키를 누르면 새로고침으로 랜덤숫자가 나타나게 됩니다. 참고로 중복숫자가 나오므로 로또 조합기로 사용하기 어렵다면 조건부 서식 기능을 활용합니다. 아래의 예제와 같이 ‘조건부서식 > 셀 강조 규칙 > 중복 값’ 을 선택합니다.
■ 중복 값을 랜덤하게 필더링하기 위해서는 셀에 마우스로 드레그하여, 중복된 값의 경우 진한 빨강 텍스트로 채워 넣기를 하여 중복 숫자를 골라낼수가 있답니다.
아래와같이 같은 중복 숫자가 나타나게 되면 조건부서식 중복값을 적용한 셀에 빨강색으로 표시가 되어서 쉽게 구분할수가 있으며 새로고침 F9 키를 중복이 적을때까지 눌러 주시면 된답니다.
예제 로또 조합기 만들기 함수 적용하기.
1번 : =RANDBETWEEN(1, 7)
2번 : =RANDBETWEEN(8, 15)
3번 : =RANDBETWEEN(16, 23)
4번 : =RANDBETWEEN(24, 30)
5번 : =RANDBETWEEN(31, 37)
6번 : =RANDBETWEEN(38, 45)
사용자는 랜덤 함수와 조건부 서식 중복값 기능을 사용하여서 간단하게 로또번호 추출기를 만들어 보았지만, 엑셀 랜덤함수 기능은 좀더 다양하게 활용해 볼수가 있답니다.
5.3.1 랜덤(random) 모듈
이번에는 파이썬에서의 랜덤(random)에 대해 가볍게 정리해볼까 합니다.
우선 랜덤이 무엇인지부터 살펴볼까요.
주사위를 던지는 상황을 생각해봅시다. 주사위의 각 면에는 1개에서 6개까지의 눈이 새겨져 있어서, 주사위를 던질 때마다 그 중 하나의 숫자가 선택됩니다.
주사위를 직접 던져보기 전에는 다음번에 어떤 숫자가 나올지 알 수가 없죠.
그런데 주사위를 600번 정도 던져보면 각 숫자가 대략 100번 정도는 나오기는 합니다.
이런 것이 바로 난수(random number)입니다.
난수의 예가 될 만한 것으로 주사위 외에 또 어떤 것들이 있을까요? 복권 추첨, 음악 CD의 재생 순서 섞기…
그럼 파이썬으로 난수를 만들어봅시다.
>>> import random >>> random.random() 0.90389642027948769
random 모듈의 random() 함수를 호출했더니 복잡한 숫자를 돌려주네요. random() 함수는 0 이상 1 미만의 숫자 중에서 아무 숫자나 하나 뽑아서 돌려주는 일을 한답니다.
주사위처럼 1에서 6까지의 정수 중 하나를 무작위로 얻으려면 어떻게 해야 할까요? 이럴 때 편리하게 쓸 수 있는 randrange() 라는 함수가 있습니다.
>>> random.randrange(1,7) 6 >>> random.randrange(1,7) 2
여기에서 randrange(1,6) 이 아니라 randrange(1,7) 이라고 썼다는 점에 주의하세요.
“1 이상 7 미만의 난수”라고 생각하시면 이해가 쉽습니다.
내장함수인 range() 를 되새겨보는 것도 좋겠군요.
>>> range(1,7) [1, 2, 3, 4, 5, 6]
shuffle() 이라는 재미있는 함수도 있군요. 시퀀스를 뒤죽박죽으로 섞어놓는 함수입니다.
>>> abc = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’] >>> random.shuffle(abc) >>> abc [‘a’, ‘d’, ‘e’, ‘b’, ‘c’] >>> random.shuffle(abc) >>> abc [‘e’, ‘d’, ‘a’, ‘c’, ‘b’]
아무 원소나 하나 뽑아주는 choice() 함수도 있네요.
>>> abc [‘e’, ‘d’, ‘a’, ‘c’, ‘b’] >>> random.choice(abc) ‘a’ >>> random.choice(abc) ‘d’ >>> menu = ‘쫄면’, ‘육계장’, ‘비빔밥’ >>> random.choice(menu) ‘쫄면’
참과 거짓 중에 하나를 뽑고 싶다면, 뭐.. 까짓 거… 이렇게 해주죠…
키워드에 대한 정보 랜덤 함수
다음은 Bing에서 랜덤 함수 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.
이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!
사람들이 주제에 대해 자주 검색하는 키워드 컴퓨터가 만드는 랜덤숫자의 진실(feat.의사 난수) – [高지식] 거니
- 랜덤넘버
- 랜덤
- 랜덤번호
- 난수
- 의사난수
- 수도 랜덤
- rand()
- 컴퓨터 랜덤
- 컴퓨터
- 컴퓨터 난수
- 원리
- 강화
- 확률
- 확률 게임
- 컴퓨터 확률
- 확률 랜덤
- 랜덤 확률
- 고지식
- 거니
- 알고투게더
- 알고리즘
- 자료구조
- C언어
- 자바
- 코딩
- Gunny
컴퓨터가 #만드는 #랜덤숫자의 #진실(feat.의사 #난수) # #- # #[高지식] #거니
YouTube에서 랜덤 함수 주제의 다른 동영상 보기
주제에 대한 기사를 시청해 주셔서 감사합니다 컴퓨터가 만드는 랜덤숫자의 진실(feat.의사 난수) – [高지식] 거니 | 랜덤 함수, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.