HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
1029
awq総当たり?について4解決


awq

リンク

2013/10/29(Tue) 21:01:44|NO.57890

総当たり?というか指定された範囲の数字から
3つを重複なく取り出すということをやりたいと思い
とりあえずこんなかなというのは作ってみたのですがよくわかりません。

やってみたかったスクリプト

hoge = 5 repeat hoge - 1 cnt1 = cnt repeat hoge - cnt - 1 cnt2 = cnt repeat hoge - cnt - cnt1 - 2 cnt3=cnt logmes "" + cnt1 + "," + (cnt2+1) + "," + (cnt+2) loop loop loop

デバッグウィンドウのログにある
0,1,2
0,1,3
0,1,4
0,2,2
0,2,3
という部分まではうまくいっているようです。
どう直したらよいでしょうか?



この記事に返信する


KA

リンク

2013/10/29(Tue) 22:06:05|NO.57891

>>0,2,2
うまくいっていないと思う。

この手の問題は中学ぐらいで習わなかったかな?、総数自体は計算で求められます。
実際の探し方は一定の規則性が理解できれば、そんなに難しくはないはずです。
考え方によっては極短いスクリプトで出来るでしょう。



FunnyMaker

リンク

2013/10/29(Tue) 22:12:04|NO.57892

総当たりですが、この方式は辞書式配列と言います。(一定の規則にしたがって並べるので、
まるで「辞書」みたい。)

下、参考に。


hoge = 5 num = 3 cnt0 = 0 repeat limit(hoge - cnt0 - (num-1),0,hoge - cnt0 - (num-1)) cnt1 = cnt0 + 1 + cnt repeat limit(hoge - cnt1 - (num-2),0,hoge - cnt1 - (num-2)) cnt2 = cnt1 + 1 + cnt repeat limit(hoge - cnt2 - (num-3),0,hoge - cnt2 - (num-3)) cnt3 = cnt2 + 1 + cnt mes ""+cnt1+","+cnt2+","+cnt3+"" loop loop loop



FunnyMaker

リンク

2013/10/29(Tue) 22:33:29|NO.57894

ごめんなさい。↑の記事の参考ソースの、limit関数は全く不要です。(デバッグ用の残っていた。)
limitを外して中身だけにしてOKです。



awq

リンク

2013/10/29(Tue) 23:10:52|NO.57896

>>KAさん
[0.2.2]の部分、見落としてしまっていました・・・
規則性はこれからも何かあるたび探していこうと思います。

>>FunnyMakerさん
これがやりたかったです。
よくソースを読んで理解していこうと思います。

KAさん、FunnyMakerさん、ありがとうございました、助かりました。



ONION software Copyright 1997-2023(c) All rights reserved.