VB¿¡¼­ÀÇ Rnd ·£´ý ¼ýÀÚ ±¸ÇÒ ¶§

   Á¶È¸ 4415   Ãßõ 0    

 

 




좌측 세로 1~10 까지 , 가로 0~0.9 까지


a=Int(N * Rnd) + 1 

N=10

엑셀 VB 스크립트에서 랜덤 수를 구할 때 

저 식을 많이 알려주시더군요


사용하다가 비슷한 숫자가 자주 나오길래 궁금해서 VB 도움말을 찾아봤습니다.

https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualbasic.vbmath.rnd?view=net-5.0 

The Rnd function returns a value less than 1, but greater than or equal to zero.


제대로 이해를 했는지 모르겠습니다

remark에 나온 문구대로 엑셀로 어떤 숫자가 나올 수 있는지 간략하게 따져보니

확률상으로 보면 10이 나올 경우가 제일 적은 것처럼 나옵니다.


제가 잘못 이해를 한 것인가요? 

아니면 확률적으로 균등하게 나올 수 있는 식이 따로 있을까요?

꿈만 꾸는 공상가
ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
±èÁ¦¿¬ 2020-11
ÇÔ¼ö°¡ Ʋ¸°°Å ¾Æ´Ñ°¡¿ä ?
Int(2 + Rnd * (30 - 2 + 1))
https://www.automateexcel.com/vba/random-number/

ÀÌ·±½ÄÀ¸·Î Ç϶ó°í ³ª¿ÍÀִµ¥¿ä .
     
±×·±°¡¿ä?
Àú ½ÄÀº Áö½ÄÀÎ ÅëÇؼ­ ¹ÞÀº °Ì´Ï´Ù
Àú·± ½ÄÀÌ ¸¹ÀÌ ³ª¿À´õ¶ó±¸¿ä

¾Ë·ÁÁֽŠ¸µÅ© ÂüÁ¶ÇÏ°Ú½À´Ï´Ù
     
syspro86 2020-11
µ¿ÀÏÇÑ°Ì´Ï´Ù.  Lowerbound upperbound¿¡ 1 10À» ³ÖÀ¸¸é µ¿ÀÏÇÑ ¼ö½ÄÀÌ ³ª¿É´Ï´Ù
ÇØ´ç ¸µÅ©¿¡ ¸í½ÃµÇ¾î ÀÖÁö ¾ÊÁö¸¸, ¿¹½Ã ºÎºÐÀ» Âü°íÇغ¸¸é 0~1»çÀÌÀÇ ±Õµî ³­¼ö »ý¼ºÇÔ¼ö·Î º¸ÀÔ´Ï´Ù. (0<= ~ <1)
ÀÛÀº ¹üÀ§ÀÇ ÀÓÀÇÀÇ ¼ö¸¦ »ý¼ºÇϸé ÇÊ¿¬ÀûÀ¸·Î °°Àº ¼ö°¡ ³ª¿À´Â °Í °°Àº ´À³¦ÀÌ µé ¼ö ÀÖ½À´Ï´Ù.
Å« ¹üÀ§ÀÇ ÀÓÀÇÀÇ ¼ö¸¦ ¸¹ÀÌ »ý¼ºÇؼ­, ÆÐÅÏÀ» º¸¸é ±ÕµîÇÑ È®·ü·Î ³­¼ö¸¦ »ý¼ºÇÏ´ÂÁö ¾Ë ¼ö ÀÖ°Ú½À´Ï´Ù.

¾Æ´Ï¸é, ·£´ý ½Ãµå¸¦ °è¼Ó ÃʱâÈ­ Çؼ­ »ç¿ëÇØ º¸½Ã´Â °ÍÀº ¾î¶³±î¿ä?
     
Àú ½ÄÀ» ÀÌ¿ëÇؼ­ Áߺ¹µÇ´Â ¼ö¸¦ ±¸Çغ¸´Ï
°è¼Ó µ¿ÀÏÇÑ ¼ö°¡ ±¸ÇØÁý´Ï´Ù ¤»
±×·¡¼­ Rnd¿¡ Àǹ®ÀÌ, Àú ½Ä¿¡ Àǹ®ÀÌ µé¾ú½À´Ï´Ù
ÃÊÂ¥¶ó ±èÁ¦¿¬´ÔÀÌ ¾Ë·ÁÁֽŠ¸µÅ©¿¡¼­ µµ¿òÀ» ¹Þ¾Æº¸·Á±¸¿ä
syspro86 2020-11
Rnd°¡ 0¿¡¼­ 0.99999¿¡ °í¸£°Ô ºÐÆ÷µÇ¾îÀÖ´Ù¸é
10*Rnd´Â 0¿¡¼­ 9.9999¿¡ °í¸£°Ô ºÐÆ÷µÇ°í..
Int·Î Á¤¼ö¸¸ ¶¼¿À¸é 0 ~9
1À» ´õÇؼ­ 1~10·Î ºÐÆ÷µË´Ï´Ù
Áï RndÀÇ ½Å·Úµµ¿Í °°´Ù°í »ý°¢µÇ³×¿ä
     
Á¦°¡ do loop until ¹®¸¸ »ç¿ëÇؼ­
n°³°¡ µ¿ÀÏÇÑ ·£´ý °ªÀ» ±¸ÇÏ´Â ½ÄÀ» ¸¸µé¾î¼­
¿¢¼¿¿¡¼­ µ¹·ÁºÃ´Âµ¥ nÀÌ Áõ°¡ÇÒ¼ö·Ï ³ª¿À´Â °ªÀÌ
°íÁ¤µÇ¾î ³ª¿É´Ï´Ù

a01 integer
a02 integer
.
.
.
a09 integer

b01 integer
.
.
.
b03 integer

c01 integer

do

do
a01=(NxRnd)+1
.
.
.
a03=(NxRnd)+1

loop until a01 = a02 and a01= a03
b01 = a01

.
.
.

do
a07=(NxRnd)+1
.
.
.
a09=(NxRnd)+1

loop until a07=a08 and a07= a09
b03=a07


loop until b01 =b02 and b01 =b03
c03=b01

ÃÊÂ¥¶ó ´ëÃæ ÀÌ·± ½ÄÀ¸·Î do loop untilÀ»
Áßø½ÃÄѼ­ N°³°¡ µ¿ÀÏÇÏ°Ô ³ª¿Ã ¼ö ÀÖ´Â ·£´ý °ªÀ»
±¸Çغ¸·Á°í µ¹·È½À´Ï´Ù

(µ¿ÀÏÇÑ °ª 4°³ ÀÌ»ó ºñ±³ÇÒ °æ¿ì ¿¢¼¿ÀÌ ¼ö½Ä ¿¬»êÀ¸·Î
ÀÀ´ä¾øÀ½À¸·Î ³Ñ¾î°¡¼­ ³ª¿ÀÁö ¾Ê±â¿¡
3°³¾¿ ²÷¾î¼­ µ¹¸®´Â °Ô ÃÖ¼±À̾ú½À´Ï´Ù)

do loop Áßø ½ÄÀÌ À߸øµÈ °ÍÀÎÁö ¸ð¸£°ÚÁö¸¸
·£´ýÀ¸·Î »ý¼ºÇÑ °ªÀε¥
ÃÖÁ¾ c01ÀÇ °ªÀÌ ·£´ýÇÏ°Ô ³ª¿À´Â °ÍÀÌ ¾Æ´Ï¶ó
ÀÏÁ¤ÇÑ ¼ýÀڵ鸸 ³ª¿É´Ï´Ù

ÀÌ°É ¿©·¯¹ø Áßø½ÃÅ°¸é µ¿ÀÏÇÑ ¼ýÀÚ 1°³¸¸ °è¼Ó ³ª¿É´Ï´Ù
¹¹°¡ ¹®Á©±î¿ä?
cpu°¡ ¹®Á¦ÀΰÇÁö...¼ö½ÄÀÌ ¹®Á¦ÀΰÇÁö...
Rnd ½Å·Úµµ°¡ ¹®Á¦ÀΰÇÁö...
ÃÊÂ¥¶ó ¸ð¸£°Ú½À´Ï´Ù ¤»
          
syspro86 2020-11
Àüü ÄÚµåÀÇ Àǵµ´Â ¸ð¸£°ÚÀ¸³ª..
loop until a01 = a02 and a01= a03
ÀÌ ÄÚµå´Â 3°³°¡ ¿¬¼ÓÀ¸·Î °°Àº°Ô ³ª¿Ã¶§±îÁö ¹Ýº¹Çϴ°ɷΠº¸ÀÔ´Ï´Ù. ÀǵµÇÏ½Å°Ô ¸Â³ª¿ä?
Rnd°á°ú°¡ ¿¬´Þ¾Æ °°Àº °ªÀ» °¡Áö´Â°Í°ú °í¸£°Ô ÆÛÁö´Â°ÍÀº º°°³ À̾߱â¶ó »ý°¢ÇÕ´Ï´Ù

¿¢¼¿ vba ÄÚµå·Î rnd °ËÁõÇÏ´Â Äڵ带 Â¥ºÃ½À´Ï´Ù
Rnd¸¦ Àû´çÈ÷ ¸¹ÀÌ ¼öÇàÇÏ°í °á°ú¸¦ Ä«¿îÆÃÇÏ´Â ÄÚµåÀÔ´Ï´Ù

Sub test()
 Dim a(1 to 10)
  Dim i,j
  For i = 0 to 1000000
    j = Int(Rnd * 10) + 1
    a(i) = a(i) + 1
  Next i

  For i = 1 to 10
    Cells(i,1) = a(i)
  Next i
End sub
               
³× ÀǵµÇÑ ¹Ù°¡
¿¹·Î
1~10±îÁö ·£´ýÇÑ ¼ýÀÚ°¡ ³ª¿À´Â
10°³ÀÇ Åë¿¡¼­
µ¿ÀÏÇÑ ¼ýÀÚ°¡ 10°³ÀÇ Åë¿¡¼­ ³ª¿Ã ¶§±îÁö °è¼Ó µ¹¸®°í
±× µ¿ÀÏÇÑ ¼ýÀÚ°¡ ¹«¾ùÀΰ¡¸¦ ±¸ÇÏ´Â °ÍÀÔ´Ï´Ù.

°°Àº °ªÀÌ ³ª¿À´Ï ´Ù¸¥ ¹æ¹ýÀ» ã¾ÆºÁ¾ß°Ú½À´Ï´Ù
                    
ÀÏ´Ü °æ¿ìÀÇ ¼ö´Â 10^10 Á¤µµ µÉ °ÍÀÌ°í, ±× Áß¿¡¼­ ¸ðµÎ µ¿ÀÏÇÑ ¼ö°¡ ³ª¿À´Â °æ¿ì°¡ 10°³ÀÔ´Ï´Ù.
VBÀÇ ÄÚµù ¹æ¹ýÀº ¸ð¸£Áö¸¸,
1~10»çÀÌÀÇ ÀÓÀÇÀÇ ¼ö¸¦ 10°³ »ý¼ºÇÑ ´ÙÀ½,
1¹ø°¿Í 2¹ø°°¡ µ¿ÀÏÇÏ°í, 1¹ø°¿Í 3¹ø°°¡ µ¿ÀÏÇÏ°í,,, 1¹ø°¿Í 10¹ø¤Š°¡ µ¿ÀÏÇÑ°¡¸¦ ¹Ýº¹ÀûÀ¸·Î ÆÇ´ÜÇÏ´Â ½ÄÀ¸·Î ÄÚµùÇÏ´Â°Ô ÆíÇÏÁö ¾ÊÀ»±î »ý°¢µË´Ï´Ù.
Åë»óÀûÀ¸·Î ÄÄÇ»ÅÍÀÇ ³­¼ö´Â ÃæºÐÈ÷ ³­¼ö¶ó ÇÒ ¼ö ÀÖ´Â ÀÇ»ç ³­¼ö·Î ¾Ë°í ÀÖ½À´Ï´Ù.
VB ½ºÅ©¸³Æ®¸¦ µ¿½Ã¿¡ ¿©·¯°³ ½ÇÇàÇÒ ¼ö ÀÖ´Ù¸é, ÄÚ¾î ¼ýÀÚ¸¸Å­ µ¿½Ã¿¡ µ¹·Á¼­ È®ÀÎÇØ º¸°Ú½À´Ï´Ù.
                         
ÃÊÂ¥¶ó ¾Æ´Â ¹üÀ§ ³»¿¡¼­ ÇÏ´Ùº¸´Ï Àú·¸½À´Ï´Ù ^^;
randomize Çؼ­ seed µµ ¹Ù²ãÁֽðí rand ÇÏ¼Å¾ß Á»´õ Ç°Áú³ôÀº À¯»ç·£´ý°ªÀ» »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù
     
Áö±ÝÀº randomize ¸¦ ¿©·¯¹ø ³Ö¾î¼­ µ¹·Áº¸°í ÀÖ½À´Ï´Ù
¿©·¯¹ø ³Ö¾îµµ µÇ´ÂÁö ¸ð¸£°ÚÁö¸¸
È®½ÇÈ÷ µ¿ÀÏÇÑ °ªÀº ¾È³ª¿À³×¿ä


QnA
Á¦¸ñPage 853/5686
2015-12   1512704   ¹é¸Þ°¡
2014-05   4976576   Á¤ÀºÁØ1
2003-12   10050   ¹®Á¤ÀÏ
2007-01   5618   ÀÌ´ë·Î
2005-09   5653   ÀÌÀç¼·
2003-08   8430   È«»óÈÆ
2003-10   10339   ±è°Ç¿ì
2006-08   4908   ¹éÀÎÇÐ
2004-12   6750   ÀÌÈÄ¿ë
2003-09   9775   ÀÌ»óÁø
2004-10   6733   Á¤¿µÀç
2007-09   4933   À¯±Ù¸í
2005-04   6367   °­¼º±Ô
2006-11   4614   ±è°Ç¿ì
2007-08   4943   ±è½Â¿ë
2008-01   5162   ¼­µ¿±Ô
2003-01   11786   Á¶¿ëÁØ
2006-05   5322   Á¶¸íÁØ
2008-01   5024   ¹®±¤È­
2004-01   8822   ÀÌÈ¿Áß
2007-11   5270   ÀÌÁ¾¿ø
2007-03   4605   ±èÀç¹Î