SRC質問掲示板Mk2
(現在 過去ログ105 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

No18988 の記事


■18988 / )  Re[2]: 条件式が無条件で満たされる?
□投稿者/ 匿名希望 -(2006/08/13(Sun) 02:50:18) [ID:2eMbhZ9o]
    ↓同一文字列除外処理ここから

    For バケラッタ番号 = 1 To 5400
    If バケラッタ順番 = 0 Then
    Incr バケラッタ順番
    オリジナルバケラッタ[バケラッタ順番] = バケラッタ名[バケラッタ番号]
    ElseIf バケラッタ順番 >= 1 Then
    For バケラッタワルツ = 1 To バケラッタ順番
    If InStr(オリジナルバケラッタ[バケラッタワルツ],バケラッタ名[バケラッタ番号]) = 0 Then
    Incr バケラッタ順番
    オリジナルバケラッタ[バケラッタ順番] = バケラッタ名[バケラッタ番号]
    Break
    EndIf
    Next
    EndIf
    Next

    ↑同一文字列除外処理ここまで

    変数の役割はこうです。

    バケラッタ名(配列)…………………ランダムな文字列(親記事ではRandom関数で代用)
    オリジナルバケラッタ(配列)………同一の文字列が算出された物を除いたオリジナルの文字列郡(現状では同一文字列も投入されてしまう)
    バケラッタ順番…………………………オリジナルの配列用の番号

    実際に使用している処理はこのようになっています。

    具体的には
    「算出された文字列をそれまでに現れた文字列と比較し、少しでも違うならば別な変数に保存する」
    という処理です。

    これまでにも
    「文字列をいくつか算出した後になぜか同じ文字列が算出される」
    という現象を何度も確認しています。
    周期は長いもののRandom関数ならともかく
    まったくのアトランダムで算出されている文字列が
    750回程度回った後で同じになるのは変です。
    この数字は多いとお思いでしょうが実は約400万通り以上の文字列を算出する方法があります。
    この方法を使っても750回程度でループして同じ文字列が出ます。
    これを解消する為に同じ文字列をカットしようとしたのですが、失敗です。

    私はOpen、Print、Closeの各コマンドを使っているので結果が一目瞭然です。
    オリジナルバケラッタ」の内容を全て書き出す処理になっているのですが、
    なぜか同じ文字列まで書き出されてしまいます。

    凡ミスをしていたらすみません。

    どのような条件式を使えばいいのでしょうか。
返信/引用返信 削除キー/


Pass/

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

- Child Tree -
- Antispam Version -