• ベストアンサー

並び替えソフト

任意の番号(例えば1~50)をシャッフルしてランダムに並べるフリーソフトはありませんか? 例えば、1~9の9個の数字の場合は、「1.2.3.4.5.6.7.8.9」のように並んでいる番号を「3.9.4.6.8.1.7.5.2」のように並び替えるソフトを探しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.6

改修してみました。 同じフォルダに STARTNO.txt というファイルに最初に始まる番号を入力したものを準備しておいて下さい。 1から始まる時は 1 '------------------------------------------- 'コンソールから実行する時は>cscript shuffle.vbs 'STARTNO.txtに書かれている番号から、Need人数をシャッフルする Dim fso, tso Dim MaxNum, Need, Off, StartNo Dim NumList Dim i,x MaxNum = 27 '児童の人数 Need = 20 '給食当番に必要な人数 Off = 7 '抜ける人数 Set NumList = CreateObject("Scripting.Dictionary") Set fso = WScript.CreateObject("Scripting.FileSystemObject") Set tso = fso.OpenTextFile("STARTNO.txt",1) '今回の始めの番号を読み出す StartNo = CInt(tso.ReadLine) tso.Close x=StartNo for i=0 to Need -1 NumList.Add i,x 'リストを作る x = x + 1 if x >MaxNum then x =1 next WScript.Echo StartNo & "から" & Need & "人" Randomize do until NumList.count = 0 x=Int(Need * Rnd) if NumList.Exists(x) then WScript.Echo NumList.Item(x) NumList.Remove(x) end if loop StartNo = (StartNo + Off) mod MaxNum if StartNo = 0 then StartNo = MaxNum Set tso = fso.OpenTextFile("STARTNO.txt",2) '次回の始めの番号を書き出す tso.WriteLine(CStr(StartNo)) tso.Close

negibouzu
質問者

お礼

改修ありがとうございます。ここしばらく、ADSLの回線が不調で接続できなかったのですが、やっと直りました。一度、試してみます。ごめんなさい。仕事が立て込んでいて、1週間少々かかると思います。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

#2補足について> 例えば1~27人が前から順番に7人抜ける(抜けて後ろに並ぶ)ということは、シャッフルする要素がないと思うのですが、 最初の1~27の並びをシャッフルで決めるといういみですか? それとも、1週間毎にシャッフルするという意味でしょうか? 後の意味だと、勤務につく間隔が他の人より短い人がでてくるような気がするのですが、 例えば、こういう動作をして欲しいというのを具体的な(どうシャッフルが関係するのか)例をあげて説明していただけませんか? >VBScript (私にはよくわかりませんが)が一番簡単な方法ですか? エクセルとかを使う方法もあるかとも思いますが、 プログラム的な操作になること、 非常に限定的な要素を含むことから フリーソフトでは、望む動作をするものが(ほとんど)ないような気がします。 なので、作らないといけないですが、 どういうソフトが動くのかという環境がわからない上では、 MSの場合98以降のOSが入っていれば使えると判断できるVBScriptを使用することにしました。

negibouzu
質問者

補足

こんばんは。早速の回答ありがとうございます。 私のPCは、OSがWindowsXPです。給食当番は、毎週7人ずつが1週間交代で休みます。で、当番の子20名の中で毎週シャッフルしたいのです。なぜかというと、陶器製の食器や牛乳瓶は重いので、1階から3階まで二人で運ぶのです。シャッフルしなければ、例えば、「8番の子と18番の子、9番の子と19番のというふうに、運ぶペアになる相手がいつも同じ人物に成ることが多いので、給食当番の中で、いろんな子とペアになりたい」という子どもたちからの要望があったためです。

全文を見る
すると、全ての回答が全文表示されます。
  • uzzra
  • ベストアンサー率43% (55/127)
回答No.4

1~43に限定されますが、ロト6用の数値シャッフルをするフリーソフトがありました。 ↓ http://www.vector.co.jp/soft/dl/win95/amuse/se316443.html それから、パスワードを生成するツールですが、これも応用次第で使えませんか。(文字を数字に見立てて、など) ↓ http://www.vector.co.jp/soft/win95/util/se161038.html?y

全文を見る
すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#2>チンプンカンプンなんです まず、「スタートメニュー」から 「すべてのプログラム」~「アクセサリ」~「コマンドプロンプト」 を選んで下さい。 黒いウインドウが開くはずです。 一番上の方に今開いているフォルダ名が表示されているはずです。 次に、 エクスプローラからその表示されているフォルダに移動して、フォルダの中で右クリックして「新規作成」~「テキストドキュメント」で新しいテキストファイルを作って下さい。 名前が青くなっている処で(あるいは、F2キーを押して) shuffle.vbs に名前を変更して下さい。(拡張子は普段表示されるようになっていますか?) 警告されると思いますが、OKして名前の変更を完了します。 すると、字の書かれたような青い巻物みたいなアイコンになるはずです。 それを、右クリックして「編集」を選んで下さい。 メモ帳が開くはずです。 そこに、 #2の回答の切取線以下の部分をコピーして貼り付けて下さい。 張り付けできたら、上書き保存してメモ帳を終了します。 次に、 もとのコマンドプロンプトに戻って画面をクリックして下さい。 そこで、 cscript shuffle.vbs とタイプして、ENTERキーを押して下さい。 プログラムを実行することができます。 プログラムが見つからないとかそういうメッセージが出る場合その起動したフォルダにないかもしれません。 dir とタイプして、ファイルの一覧から shuffle.vbs があることを確認して下さい。(ない場合は、そのフォルダを最初の手順でもう一度確認して下さい。) いったん、shuffle.vbs を作成できたら ダブルクリックしても実行することもできます。 動作はちょっと変わります。

全文を見る
すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

とりあえず、作ってみました。 以下の部分をshuffle.vbsとでも名前を付けて保存し ダブルクリックするか コマンドプロンプトで >cscript shuffle.vbs として下さい。 コマンドプロンプトの場合、 >cscript shuffle.vbs >data.txt とでもすることで出力をファイルに保存することができます。 '-----------------------切り取り線-------------- '1から指定された数字までをランダムに表示する 'コンソールから実行する時は>cscript shuffle.vbs Dim MaxNum Dim NumList Dim i,x Set NumList = CreateObject("Scripting.Dictionary") MaxNum=InputBox("1から指定された数字までの数字をシャッフルして書き出します" & vbCRLF & "数字を入力して下さい") for i=1 to MaxNum NumList.Add i,i next Randomize do until NumList.count = 0 x=Int((MaxNum * Rnd) + 1) if NumList.Exists(x) then WScript.Echo NumList.Item(x) NumList.Remove(x) end if loop

negibouzu
質問者

お礼

回答ありがとうございました。せっかく回答いただいたのに、>cscript shuffle.vbsの意味がまったくわかりません。コンソールって意味もわかりません。作っていただいたものは、何を使うのですか?メモ帳ですか?チンプンカンプンなんです。ごめんなさい。

negibouzu
質問者

補足

こんばんは。動かなかったので、下記のようにしてみたら動きました。 <引用から修正> '1から指定された数字までをランダムに表示する 'コンソールから実行する時は >cscript shuffle.vbs Dim MaxNum Dim NumList Dim i,x Set NumList = CreateObject("Scripting.Dictionary") MaxNum=InputBox("1から指定された数字までの数字をシャッフルして書き出します") & vbCRLF & (x) for i=1 to MaxNum NumList.Add i,i next Randomize do until NumList.count = 0 x=Int((MaxNum * Rnd) + 1) if NumList.Exists(x) then WScript.Echo NumList.Item(x) NumList.Remove(x) end if loop <以下、追加質問です> 私は、小学校教員ですが、給食当番の係りの児童の番号をシャッフルしたくて、前回質問しました。 クラスの子は27名です。給食用エレベーターがないので、給食当番は20名必要なんです。1週間交代です。1番の子から20番の子までが今週の当番。翌週は、最初の7人が抜けて8番~27番が担当。その次の週は、8~14が抜けて、15番~27番と1番~7番の20名。その次は、15~21が抜けて、22~27と1~14の20名。というふうに、7人ずつぬけてグルグル回っていきます。今年は27名の児童数ですが、来年度は人数が増えるか減るかわかりません。少しややこしいですが、このような場合でもできるでしょうか? VBScript (私にはよくわかりませんが)が一番簡単な方法ですか?

全文を見る
すると、全ての回答が全文表示されます。
  • silo_7
  • ベストアンサー率60% (53/88)
回答No.1

「行単位で並び替える」エディタやエクセル等の表作成ソフトがあれば、一度、 1 2 3 4 のように入力するか、1文字ごとに改行コードをつけておき、 2 4 1 3 のようにランダムに処理してから改行コードを外すといいう方法が思いつきます。 テキストファイルソータはそういうソフトのひとつです。

参考URL:
http://www.magictory.com/main/soft/softs.html
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • こんなナンバーズ3ソフトはありませんか?

    フリーで以下のような条件のソフトを探しています。 予想ソフトではなく、ランダムでナンバーズ3の番号を表示する。 番号表示は1つだけではなく、指定した分が一度にズラっと表示される。 例えば、200口分を指定したら、200個の3ケタの数字が表示されるということです。 ナンバーズ用ソフトでどうしてもないのなら、ランダムに3ケタの数字を指定分表示できるソフトならかまいません。

  • フリーソフト

    スライドショーができてシャッフル機能があって10秒くらいでシャッフルしてくれるフリーソフトありませんか。

  • エクセルで単純に並び替えができない

    エクセルでたとえばランダムに打ち込んだ数字 1 5 8 7 9 7 3 4 5 2 を 9 7 8 5 1 2 5 4 3 7 と単純に左右の並び替えはできないのでしょうか?

  • 決まった範囲の数字からランダムで一つを決定するフリーソフト

    いまちょっとした当選を行いたいのですが、 たとえば1~25000の数字の中から ランダムで一つを選ぶというようなフリーソフトないでしょうか? また、希望としてはそのなかでも例えば1~1000は、 ほかよりもやや選ばれる率を上げる、というような ランク付けのようなものもあるとなお助かるのですが、、

  • PC上でMP3をランダム再生できるソフト。

    任意のディレクトリにMP3のデータがひとまとめで掘り込んでます。 場所も指定でき、単純にランダムで再生してくれるフリーソフトを 探してます。一応メディアプレイヤーが入ってますが、起動も重く 他の機能も使わないので、、、 オンラインでもなく軽くてシンプル でいいなと思ったらランダム再生が出来ないとか、不得手な者で 中々良いのが見つかりません。お勧めがあれば教えて頂けると ありがたいです。

  • 入力した文字を組み合わせるソフト

    特定の文字列を総当りで組み合わせたものを表示できるものを探しています。 例えば 「おしえてぐう」 と入力すると 「しおえてぐう」「しえおてぐう」… といったように全ての組み合わせを見たいのです。 検索してみましたがパスワードを生成するソフト(ダミーを追加しなければいけない)や50音全てからランダムに表示するソフトなどで、希望のものが見つかりません。 表示できればブラウザ上のものでも構いません。 ・フリーソフト ・WINDOWS Vistaで動作可能 ・ひらがな、もしくはカタカナでシャッフルする ・総当りで表示する 以上の条件でありましたらお願いします。 ※ワードやエクセルを所有していないのでこれらのアプリケーションを使用するものも除く

  • 百マス計算ができるフリーソフトをご存じありませんか?

    私には小学校3年生の娘がいます。本で「百マス計算」というものを知り、実際に紙に書いてやっていました。しかし、数字を当てはめたり、解答するのに結構時間がかかります。パソコンを使用して数字の部分をランダムに書いてくれるフリーソフトがどこかにありませんか? よろしくお願いします。なければシェアウェアでも結構です。教えて下さい。

  • HDの中身を完全に消去するソフト

    容量の少ないハードディスクを手放したいと思うのですが、 ハードディスクを完全に消去するお勧めのフリーソフトがあったら 教えてください。 ハードディスクは初期化してフォーマットしても、 復元できちゃうのですよね? ハードディスクにランダムな数字を何回か書き込めば 復元できなくなると聞きました。 どうすれば他の人に渡してもよい状態にできるか 教えてください。

  • エクセルで任意の単語をランダムに組み合わせる方法を教えてください

    エクセルで任意の単語をランダムに組み合わせる方法を教えてください。 また、同様のフリーソフト、オンラインプログラムがありましたら教えてください。

  • フリーソフトで数字予想(分配)できるものはありませんか?

    子供の学校でPTA主催による抽選ゲームをすることになりました。 *1クラス30名で計12回ゲームをします。 1回ごとに1名が選ばれる仕組みです。 子供達には数字が重複しないように12回分の数字を予め渡したいのですが,30の数字をランダムに振り分けるのに苦労しています。 フリーのソフトで何か良い物をご存知の方がいらっしゃいましたら 是非教えて下さいませ。開催まで時間があまりなくなってしまい焦っています。

専門家に質問してみよう