tagCANDY CGI VBレスキュー(花ちゃん) - 任意の排他的な数列をつくるには(VB6.0) - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
任意の排他的な数列をつくるには(VB6.0)
元に戻る スレッド一覧へ 記事閲覧
このページ内の検索ができます。(AND 検索や OR 検索のような複数のキーワードによる検索はできません。)

任意の排他的な数列をつくるには(VB6.0) [No.33の個別表示]
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
日時: 2009/12/27 15:25
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[文字列処理][アルゴリズム][]                                 *
* キーワード:並べ替え,入れ替え,,,,                                          *
***********************************************************************************

Q.

例えば1,2,3,4,5という数字を3,1,2,5,4のように、バラバラな順番にする方法ってあるんでしょうか?
つまり、同じ数字は2度と表れず、かつ、ランダムに(実行毎に毎回異なる)数列です。

A.

配列に先に1〜5を設定しておき、ランダムにその配列の同士の中身を入れると重複することなくランダムな順にできます。
トランプのカードをきるのと同じ発想です。

---------------------------------------------------------------------------------
VBで任意の排他的な数列をつくるには - けいこ 2002/09/29-16:23 No.749
---------------------------------------------------------------------------------

ありがとうございます。さっそく作ってみました。
解決して、頭すっきりです。う〜ん、思いつきませんでした。

Private Sub subShaffle(shMaxNum As Integer) ’shMAXまでの数の排他数列
    Dim rndmNum As Integer
    Dim shKaisu As Integer
    Dim shI As Integer
    Dim tmpNum As Integer
    
    For shI = 1 To shMaxNum
        shNum(shI) = shI
    Next
    
    For shI = 1 To shMaxNum
    
        Randomize
        rndmNum = Int((shMaxNum - 1 + 1) * Rnd + 1)
        tmpNum = shNum(shI)
        shNum(shI) = shNum(rndmNum)
        shNum(rndmNum) = tmpNum
        
    Next
    
'    MsgBox shNum(1) & shNum(2) & shNum(3) & shNum(4) & shNum(5)
    
End Sub
メンテ

Page: 1 |

 投稿フォーム               スレッド一覧へ
題  名 スレッドをトップへソート
名  前
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存   
スレッド一覧へ