훨씬 간단 할 수 있습니다.
Private Shared PRNG As New Random
' 100 numbers starting at zero, in random order
Private listOnum As List(Of Integer) = Enumerable.Range(0, 100).OrderBy(Function(x) PRNG.Next).ToList
' list of 70 numbers from list of 100
Private list70 As List(Of Integer) = listOnum.Take(70).ToList
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'did it work?
Dim ct As Integer = 1
For Each n As Integer In list70
Debug.WriteLine("{0}. {1,3}", ct, n)
ct += 1
Next
End Sub
Enumerable.Range에는 두 개의 인수가 사용됩니다. 첫 번째 숫자는 시작 숫자이고 두 번째 숫자는 숫자이므로 예제에서는 0에서 시작하여 99, 100 개의 항목으로 끝나는 목록을 만들었습니다. OrderBy는 그 목록을 임의의 숫자로 정렬했습니다.
list70은 listOnum에서 처음 70 개 항목을 가져와 생성됩니다.
랜덤, PRNG는 한 번만 초기화되는 임의의 랜덤 하나만 있도록 그렇게 만들어집니다. 무작위의 잘못된 초기화와 관련된 많은 문제를 발견 할 수 있습니다.
편집 : 약간 다른 접근 방식. p가 나는 적어도 많이 붙여 복사 않았지만 예전의 100 줄을 제거 갈 것입니다 :
Private Shared PRNG As New Random
' 100 numbers starting at zero
Private listOnum As List(Of Integer) = Enumerable.Range(0, 100).ToList
' list of 70 random numbers from list of 100
Private list70 As List(Of Integer) = listOnum.OrderBy(Function(x) PRNG.Next).Take(70).ToList
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'did it work?
Dim ct As Integer = 1
For Each n As Integer In list70
Debug.WriteLine("{0}. {1,3}", ct, n)
ct += 1
Next
'recreate list of 70
list70 = listOnum.OrderBy(Function(x) PRNG.Next).Take(70).ToList
End Sub
는 OMG LOL, 당신은 모두를 쓰는 데 걸린 시간 (물론 실제로 수도) 아무 생각이 없다 목록을 만들고 4 행 목록으로 바꿉니다. D 어떻게 목록을 작성하면 새로운 목록을 만들 수 있습니까? 그것에 관한 문서를 찾을 수 없습니다. 별도의 목록이 필요하므로 원본 샘플 목록을 손상시키지 않고 정보를 가져온 후 나중에 반복적으로 삭제하고 다시 만들 수 있습니다. 앞으로 다른 종속성을 갖게 될 것입니다. – envisage
당신이하려고하는 것이 정확히 무엇인지, 그 배후에있는 추론을 조금 더 분명하게 설명해 주시겠습니까? 그것은 당신을 올바른 방향으로 가리키는 것을 훨씬 쉽게합니다. –
절대적으로. 내가보기에 의사 코드 주석을 달아 주거나 직접 볼 시간이 있으면 공유 프로젝트에 초대 할 수 있습니다. 그것은 디자인에 대한 나의 지식을 보여주기위한 슬롯 머신 프로토 타입이다. (그러나 나는 그것을위한 코드가 아직 없다. 나는 그것에 대해 노력하고있다.) 좋아, 여기있다. 들어오는 녹슨 의사 코드 주석. ''스핀 !!! '버튼을 클릭하십시오. '모든 버튼을 비활성화하십시오. '목록'noPlayStartSymbols "(시작 위치 슬롯에 대한 PNG 년대의 목록을 호출합니다. '< '의 5 반복 목록"100integers "및 셔플, 첫째 70 개 결과 – envisage