C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: VBでも乱数の重複について


(過去ログ 50 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■27650 / inTopicNo.1)  VBでも乱数の重複について
  
□投稿者/ きょう (1回)-(2008/11/11(Tue) 19:25:37)

分類:[VB.NET/VB2005 以降] 

初めまして!!きょうと申します
早速なのですが今0〜10の乱数を表示させるプログラムを作っていて何とかできたのですが重複してしまう数字があります。
しばらく頑張ってみたのですがなかなかうまくいかず苦戦中です。

もしよければどなたかご教授願えないでしょうか?よろしくお願いします。

ちなみにしたに張るのが作っているプログラムのソースです

Public Class Form1
Dim lblA(9), lblB(9) As Label
Dim intA(9) As Integer



Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
lblA(0) = lbl1
lblA(1) = lbl2
lblA(2) = lbl3
lblA(3) = lbl4
lblA(4) = lbl5
lblA(5) = lbl6
lblA(6) = lbl7
lblA(7) = lbl8
lblA(8) = lbl9
lblA(9) = lbl10

lblB(0) = lbl11
lblB(1) = lbl12
lblB(2) = lbl13
lblB(3) = lbl14
lblB(4) = lbl15
lblB(5) = lbl16
lblB(6) = lbl17
lblB(7) = lbl18
lblB(8) = lbl19
lblB(9) = lbl20
End Sub

Private Sub butSet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butSet.Click

butSet.Enabled = False
butsote.Enabled = True


Dim i As Integer

Randomize()





For i = 0 To 9 Step 1

intA(i) = Int(Rnd() * 10)

Next


subShow(lblA)


End Sub

Private Sub subShow(ByRef lblX() As Label)
Dim i As Integer

For i = 0 To 9 Step 1
lblX(i).Text = intA(i)
Next

End Sub

引用返信 編集キー/
■27651 / inTopicNo.2)  Re[1]: VBでも乱数の重複について
□投稿者/ .SHO (13回)-(2008/11/11(Tue) 19:35:08)
ようするに

For i = 0 To 9 Step 1
intA(i) = Int(Rnd() * 10)
Next

の処理で数値が重複するってことですか?

当然です。乱数とはそういうものです。
重複させずに0〜9の数値が欲しければ、一度使用した数値は使用しないようにする
処理を加えてください。
引用返信 編集キー/
■27652 / inTopicNo.3)  Re[2]: VBでも乱数の重複について
□投稿者/ きょう (3回)-(2008/11/11(Tue) 19:50:52)
>>重複させずに0〜9の数値が欲しければ、一度使用した数値は使用しないようにする
処理を加えてください。

返答ありがとうございます。

その処理の仕方がわからなくて困ってます!!

説明不足ですいません。
引用返信 編集キー/
■27653 / inTopicNo.4)  Re[2]: VBでも乱数の重複について
□投稿者/ yamyam (2回)-(2008/11/11(Tue) 19:52:36)

> 重複させずに0〜9の数値が欲しければ、一度使用した数値は使用しないようにする
> 処理を加えてください。

0〜9の数値を配列に突っ込んだ後にシャッフルするとか。


> For i = 0 To 9 Step 1
> lblX(i).Text = intA(i)
> Next
数値は文字列に変換してからセットするべきなのでは?
引用返信 編集キー/
■27655 / inTopicNo.5)  Re[3]: VBでも乱数の重複について
□投稿者/ .SHO (14回)-(2008/11/11(Tue) 20:12:21)
> その処理の仕方がわからなくて困ってます!!

For i=0 To 9 Step 1
intA(i)=i
Next

For i=0 To 9 Step 1
j=Int(Rnd()*10)
k=Int(Rnd()*10)
w=intA(j)
intA(j)=intA(k)
intA(k)=w
Next

引用返信 編集キー/
■27656 / inTopicNo.6)  Re[4]: VBでも乱数の重複について
□投稿者/ きょう (4回)-(2008/11/11(Tue) 20:48:34)
解決できました!!

回答してくださった方ありがとうございました
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -