- + JavaScript の質問用スレッド vol.118 + [転載禁止]©2ch.net
762 :デフォルトの名無しさん[sage]:2016/02/08(月) 18:30:14.93 ID:oTIfYznp - 質問失礼します。MAX/MSPという音楽ソフトで、javascriptを使う必要がどうしても出てきて慣れないプログラミングをしてるのですが、本当に初心者で申し訳ないのですが、どなたか教えてください。
【環境】OS,:Win8.1、MAX/MSP6.0 【期待する結果】2つの別々の配列を作り、1〜12までのランダムな数値を重複なくそれそれの配列に格納したい。1つめの配列については成功したが(ので省略しました)、2つ目の配列で、1つ目の配列と重複する要素がどうしても出てしまう。 【サンプルコード】 var generated = new Array(); var generated2 = new Array(); var count2 = 6; function generate_randomx2(count2){ if(arguments.length){ var generatedCountb = generated2.length; for(var i = 0 ; i < count; i++){ var candidate2 = Math.floor(Math.random() * 12); for(var k = 0; k < generatedCountb; k++) { for(var j = 0; j < generated.length; j++){ if(generated[j] == generated2[k] || candidate2 == generated2[k]){ candidate2 = Math.floor(Math.random() * 12); j= -1; k= -1; }}} generated2[i] = candidate2; generatedCountb++; } return generated2; } } function bang(){ for (var i = 0; i < 6; i++){ outlet(2,i); outlet(3,generated2[i]); } }
|
- + JavaScript の質問用スレッド vol.118 + [転載禁止]©2ch.net
764 :762[sage]:2016/02/08(月) 18:52:05.67 ID:oTIfYznp - >>763
回答ありがとうございます。 MAX/MSPスレで質問したいところなのですが、 そのスレでjavascriptを使う方がそもそも少ないという事情があります。 また、bang関数以下は無視してくださって大丈夫です。 >math.randomで乱数得るんじゃなくって 0から11までの配列作ってこれをfisher-yatesか何かで並び替えて使うんじゃダメなのか?>重複回避 なるほど、そういう手がありましたか、さっそく検索して調べてみます。 ご回答有難うございました。
|
- + JavaScript の質問用スレッド vol.118 + [転載禁止]©2ch.net
765 :762[sage]:2016/02/08(月) 19:50:39.92 ID:oTIfYznp - >>763
fisher-yatesを使って驚くほど簡易に実現できました。 本当に有難うございました。
|
- + JavaScript の質問用スレッド vol.118 + [転載禁止]©2ch.net
767 :762[sage]:2016/02/08(月) 20:05:40.31 ID:oTIfYznp - >>766
わざわざ有難うございます! ありがたく活用させて頂きます。
|