• ベストアンサー

mathematicaのプログラムで困っています

mathematicaで、重複を許さずにランダムに数字を発生させる方法が分かりません。 例えば、1~100までの数字を、小さい順などではなく、ランダムに並べたいのです。Randomを使うと、同じ数字が何回も出てきてしまうのですが、重複はしないようにしたいのです。 初心者で、困っています。 分かる方いらっしゃいましたら、教えてください。 お願いします。

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

  • ベストアンサー
  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

mathematicaのヘルプに、ずばりの例がありました。 The defined function RandomRelist gives a list with the same members as the input list, but in a random reordering. In[14] := RandomRelist[x_List] := Block[{n = x, p},  Do[p = Random[Integer, {1, i}]; n[[{p, i}]] = n[[{i, p}]], {i, Length[x]}]; n] In[15] := RandomRelist[Range[15]] Out[15] = {9, 15, 8, 11, 2, 10, 6, 13, 12, 14, 4, 3, 7, 5, 1} まあ、やりかたは他にもいろいろあるとは思いますが。

tadachan8
質問者

お礼

解決しました! ありがとうございました!!

関連するQ&A

  • 配列変数に重複のないランダムな数字を入れて行くには?

    JavaScript初心者です。 配列にランダムな数字を入れたいのですが、 aRnd = new Array(); aRnd[0] = Math.floor(Math.random()*100); aRnd[1] = Math.floor(Math.random()*100); aRnd[2] = Math.floor(Math.random()*100); のようにやると各配列にはランダムな数字が入りますが、重複が発生する可能性があります。これを重複が発生しないようにしたいのですが、どのようにすればいいのでしょうか? なお、上記例では0~99までの数字を3つの配列にセットする方法となっていますが、配列数や数字の最大値は変更する可能性があるので、これも配慮したいと思います。 よろしくお願いいたします。

  • Mathematicaでグラフの書き方教えてください

    Mathematicaで下記の二つの式をグラフで書きたいのですが、Mathematica初心者なものでいまいちわかりません。勉強するにも時間がないので焦っています。どうか分かる方おしえてください。 ・7x^2-22xy+7y^2=18 ・11x^2-14xy+11y^2=18

  • mathematicaに関する質問です

    mathematica初心者なので、よく使用方法がまだ分かっていなく困っています。 残余利益モデルの計算で 3805=297744+(297744-r*2135163)/(1+r)+(25000-r*2135163)/(1+r)^2+(2530000-r*2136752)/(1+r)^3 でrをmathematicaで解きたいのですが、どのように入力するとrは出てくるんですか? もし可能でしたら回答合わせにrも教えていただけると助かります。 こんな質問で恐縮ですがよろしくお願いします

  • ニューラルネットとMathematicaについて

    こんにちは。 現在私は、初心者ながらニューラルネットについて勉強しています。 そこで、Mathematicaを利用してこの勉強をしたいのですが、 そもそもMathematicaのツールでニューラルネットの計算は出来るのでしょうか? よろしければ、方法についても教えていただけると嬉しいです。 宜しくお願いいたします。

  • エクセルで「1~15」の乱数表を作りたい。

    エクセルで、「1」から「15」までの15種類の数字を使ってランダムの数列表を作りたいのですが、どのようにすればできますか? その際、各数字はそれぞれ1個ずつ、一つのセルに入れるものとします。重複しても構いません。 例えば「7」「2」「9」「13」「2」「4」「1」「9」・・・でもOKです。 また、同じ数字が連続するケースの発生もOKです。 例えば、「3」「8」「14」「6」「6」「5」「7」・・・でもOKです。2連続だけでなく、3連続もOKです。 要は「1~15の数字のランダムな出現による乱数表」が作成できればいいのです。 表の範囲は「A7~IV200」までです。 PCの初心者ですので、詳しく丁寧に教えて頂ければ有り難いです。 例えば次のように・・・。 1.・・・・・・・・・ 2.・・・・・・・・・・・・ 3.・・・・・・・・ 4.・・・・・・・・・・・・・・ 5.・・・・・・・・・ と、いう風に、順を追ってウィザード風に書いて頂ければ・・・と思います。 PCやエクセルや関数に詳しい方、宜しくお願いいたします。

  • mathematicaで作ったアニメーション

    mathematicaで作ったアニメーションをプレゼンテーションでPower Pointを使って、Power Point上で再生するにはどうすればいいでしょうか? mathematicaで作ったアニメーションをGIF形式に変換して、Power Point上に挿入すればいいようなんですが、 主にmathematicaのファイルをGIF形式に変換する方法が分かりません。 使用しているmathematicaはVer.4です。 解析結果を分かりやすく表示するために必要と思われるので、お分かりになる方、ぜひご教授ください。

  • mathematicaのプログラムの意味について.

    mathematicaを用いて宿題で, 「平均関数に有限フーリエ級数を用いて二次の自己回帰模型を条件付最尤推定法によりあてはめる.」 というものが出たのですが, ’AR(2)modelの条件付最尤推定値を求める例’ として以下のようなものがありました. FindMinimum[If[σ > 0, (51 - 2)Log[σ (2π)^0.5] +(0.5σ^2)[Sum](data[[i]]-a0- φ1(data[[i-1]]-a0) -φ2(data[[i-2]]-a0))^2,100000], {a0,13810,13811},{φ1,0.74,0.75}, {φ2,-0.0009,0.0008},{σ,324,325}, MaxIterations -> 200, WorkingPrecision -> 32] この中で {a0,13810,13811},{φ1,0.74,0.75},      {φ2,-0.0009,0.0008},{σ,324,325}, の数字が何を表しているのかわかりません. また{}の意味もわかりません. もし{{},{}}のように二重括弧を用いれば行列ですよね?. 長くなってすいません.強い方いたらアドバイスください

  • エクセル データの抽出について教えてください。

    エクセルのデータの抽出について教えてください。 大量のデータ(数字のコード)がランダムに縦に並んでいるのを、並び替えで日付順にしたのですが。 重複しているのがとても多く重複しているのは日付が早いのだけを取り出したいのですが。なにかよい方法はないでしょうか? 重複しているのに(重複していらないのに)標しでわかりやすくしてあとでフィルタで抽出して削除でもしようかと思うのですが。 標しがつけれるようなやりかたおしえてください。 

  • 重複しない組み合わせのプログラム

    0から9のうち4つの数字を取り出すというC言語のプログラムをつくりたいのですが、ランダム関数を用いると重複してしまいます。どのようにしたらよいでしょうか?

  • Mathematicaのループ文について

    現在Mathematicaを使って交通のシュミレーションをしているのですが、思ったようにループ文が作れずに悩んでいます。 もし条件式が1から4まであったとして、その条件式を毎回ループさせると考えたらどういった式を作ればよいでしょうか? ↓ちなみに条件式です。これを50回ループさせようと考えています。 road = Table[0, {2}, {54}]; road[[1, 1]] = 0; road[[2, 1]] = 0; road[[1, 2]] = 0; road[[2, 2]] = 0; road[[1, 53]] = 0; road[[2, 53]] = 0; road[[1, 54]] = 0; road[[2, 54]] = 0; road[[1, 3]] = a; road[[2, 3]] = b; If[0.5 < Random[], a = 1, a = 0]; If[0.5 < Random[], b = 1, b = 0];