トップページ > プログラム > 2016年02月08日 > oTIfYznp

書き込み順位&時間帯一覧

4 位/165 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000002110004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
762
+ JavaScript の質問用スレッド vol.118 + [転載禁止]©2ch.net

書き込みレス一覧

+ 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

わざわざ有難うございます!
ありがたく活用させて頂きます。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。