8 7 9 3 5 2 1 4 6
4 7 8 1 9 2 5 6 3
2 5 4 3 6 7 9 8 1
2 1 4 6 8 9 3 7 5
8 3 1 2 6 4 9 5 7
のような9桁の順列をランダムに発生するプログラムを十進BASICで作ったのですが、ものすごく遅いです(^O^)。
稀に数秒でできることもありますが、ほとんど15秒以上かかります。
このコードではCでやっても遅いと思います。いい方法はないでしょうか?
DIM s(1 TO 9)
LET flg = 1
LET st = TIME
DO WHILE flg = 1
RANDOMIZE
FOR n = 1 TO 9
LET s(n) = INT(RND*9+1)
NEXT n
FOR n = 1 TO 9 !ここが遅い原因
FOR k = n+1 TO 9
IF s(n) = s(k) THEN GOTO 100
NEXT k
NEXT n
LET flg = 0
100
LOOP
FOR n = 1 TO 8
PRINT USING "# ": s(n);
NEXT n
PRINT USING "#": s(9);
LET ed = TIME
PRINT
PRINT
PRINT "所要時間 ";ed-st
END
No.1ベストアンサー
- 回答日時:
こんにちは。
何となくですが、乱数で、取り合えず9個の数字を適当に入れて、それが、
1~9まで1つずつ使われているかをチェックしている様に感じます。
例えば、最初にLET s(n)に1~9までを入れて、乱数で、配列内の入れ替えを
してはダメでしょうか? それなら、同じ数字を使っているかのチェックが
不要になりますので、処理スピードは毎回同じ様になるかと思います。
> 初にLET s(n)に1~9までを入れて、乱数で、配列内の入れ替えを
> してはダメでしょうか?
ああ、なるほど!
丁寧な回答まことにありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
- Visual Basic(VBA) 任意の置換を互換の積で表すプログラム 4 2022/11/13 19:10
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
Dir関数で読み取り順を操作でき...
-
vba フィルター 複数条件 3つ以...
-
グラフの「項目軸ラベルに使用...
-
Redim とEraseの違いは?
-
Excelのメモリ(配列)の上限は2G...
-
【緊急】インクルードファイル...
-
VB6のメモリ解放に関して
-
RPG 配列宣言について
-
構造体配列内の文字列検索のよ...
-
定数配列の書き方
-
テキストボックの文字を一行ず...
-
VBAのワークシート関数で配列の...
-
VB.NETの配列にExcelから読み込...
-
大至急!!! プログラミングC...
-
8bitインデックス画像の入出力方法
-
Segmentation Fault (メモリ制限?)
-
DBから取得した値を配列へ代入する
-
エクセル VBA 変数を一括で宣言...
-
VBA フォルダ内のファイルを、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
vba フィルター 複数条件 3つ以...
-
C#でbyte配列から画像を表示さ...
-
Excel2010のinputboxで複数デー...
-
エクセルでXY座標に並べられた...
-
構造体配列の特定のメンバーをF...
-
定数配列の書き方
-
コンボボックスのインデックス...
-
OutOfMemoryExceptionの回避策...
-
Dir関数で読み取り順を操作でき...
-
CheckBoxの配列化
-
構造体配列内の文字列検索のよ...
-
COBOLの基本的な事なので...
-
Redim とEraseの違いは?
-
VBAで配列引数を値渡しできない...
-
2次元配列の初期値
-
配列の中の最大値とそのインデ...
-
VB6からの移行したいけど、VB.N...
-
大量の変数を定義するにはどう...
-
VB6のメモリ解放に関して
おすすめ情報