중복되지 않는 임의의 수 (2)

게시판 IDL Q&A 중복되지 않는 임의의 수 (2)

2 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #2494 Reply
      Alphon.D
      회원

      for ext = 0, 119 do begin

      next:; overlap number

      check_arr[0,ext] = round(randomu(seed,1)*159)

      check_idx = where(check_arr[0,0:ext] eq check_arr[0,ext], cnt0)

      if cnt0 gt 1 then goto, next

      endfor

      for x=0, 159 do begin

      match_idx = where( check_arr[0,*] eq x )

      if match_idx ne -1 then begin
      choose_arr[0,x] = x
      endif else begin
      other_arr[0,x] = x
      endelse

      왜…같은 수만나올까요;;;;
      랜덤으로 뽑으면;; 1번부터 160번까지 다른 수로 나열되는되
      정렬시키면 같은 수를 순서만 다르게 뽑고있다는걸 알게되었습니다;;;;
      왜 일까요?
      ex)1~10의 범위중 숫자 4개
      1- 2,4,5,7
      2- 2,5,7,4
      3- 5,4,7,2
      4- 7,2,4,5

      이런식입니다;;;; 이런 줴기랄…
      진정한 정수 범위 랜덤을 알려주세요 ㅠ_ㅠ
      ;;
      채크해보니 숫자가 1개씩은 바뀌네요;; 한 1:1비율로 바뀌다 안바뀌다 하는거같습니다 바껴서 숫자 1개 바뀌고;;;;
      160개중에 120개뽑는데 안 바뀌거나 바뀌더라도 1개바뀐다라;;; 원래이런가요;;;;정말 무자비하게 랜덤;;이런건 어려울까요? 100회 반복시켰는데; 이전랜덤배열과 현재랜덤배열의 차 배열이 0이아닌것의 카운트가 0011001111001111111001100110010101 이런식이네요;;;; 살려주세요 ㅠ

      • 이 게시글은 Alphon.D에 의해 8 years, 9 months 전에 수정됐습니다.
      • 이 게시글은 Alphon.D에 의해 8 years, 9 months 전에 수정됐습니다.
    • #2497 Reply
      jhlee
      Keymaster

      이전 질문과 관련이 있다고 생각하는데요, 이전 질문에 대한 Sangwoo 님의 답변과 안내된 링크를 확인해보셨는지요?
      그곳에 원하시는 답이 충분히 있을꺼라 생각합니다.
      혹은 해당 링크의 안내를 토대로 약간의 수정을 하시면 역시 문제는 해결될 것이라 판단합니다.

    • #2498 Reply
      Jonghyuk
      회원

      ex)1~10의 범위중 숫자 4개

      IDL> x=randomu(seed, 10) & y=sort(x) & print, y[0:3]+1
      1 7 6 3

      이런 걸 원하시는 건가요?

2 답변 글타래를 보이고 있습니다
'중복되지 않는 임의의 수 (2)'에 답변달기
글쓴이 정보: