JavaScriptで下記のようなものを作っていただけませんでしょうか。

いくつかの文字列をあるルールに従って並べて書き出すスクリプトです。
作っていただけた方には少ないですが500ポイントを差し上げます。

具体的には、いくつかの文字の組み合わせで出来た文字列を与え、各行の文字数を決めると「下の文字列はすぐ上の文字列に1文字加えたものか、1文字減らしたものしか置けない」「各文字列は一度しか使えない」というルールにしたがって文字列を並べてくれるというものです。(ルールを満たす並べ方が複数ある場合はすべて書き出し、不可能な場合はエラーを返す)
例えばa,b,c3文字の組み合わせで出来た文字列、a,b,c,ab,bc,ac,abcを与え、各行の文字数を(1,2,1,2,1,2,3)と決めると、

a
ab
b
bc
c
ac
abc

等(実際は他にもあります)の結果を書き出してくれるスクリプトです。この例は3文字で出来た7つの文字列でしたが、文字数や文字列数が増えても対応出来るものを希望します。
説明に解りにくい部分があれば質問してください。
また、以前よく似た質問をしましたのでそちらも参考にしてください。
http://q.hatena.ne.jp/1207875536
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/05/09 04:03:54
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:TransFreeBSD No.1

回答回数668ベストアンサー獲得回数268

ポイント100pt

http://jsdo.it/TransFreeBSD/2ZDS
コメント少なめ&ちょっと適当な感じですが。
あと、基本的なふるい分け後は全探査的なので、特に文字種が増えると時間食うかも知れません。

ところで、なんに使うんでしょう?
文字数の順番分かってる時点で正解分かってる気がするんですが。

他1件のコメントを見る
id:TransFreeBSD

変えてみました。

2012/05/08 22:01:14
id:minapoo

素早く対応していただきありがとうございます。
6個解がああるもの→6個
144個の解があるもの2種→2種とも144個
60360個の解があるもの→60360個
すべて書き出されました。
本当にありがとうございました。
ポイントをお送りさせていただきます。

2012/05/09 04:02:06

その他の回答1件)

id:TransFreeBSD No.1

回答回数668ベストアンサー獲得回数268ここでベストアンサー

ポイント100pt

http://jsdo.it/TransFreeBSD/2ZDS
コメント少なめ&ちょっと適当な感じですが。
あと、基本的なふるい分け後は全探査的なので、特に文字種が増えると時間食うかも知れません。

ところで、なんに使うんでしょう?
文字数の順番分かってる時点で正解分かってる気がするんですが。

他1件のコメントを見る
id:TransFreeBSD

変えてみました。

2012/05/08 22:01:14
id:minapoo

素早く対応していただきありがとうございます。
6個解がああるもの→6個
144個の解があるもの2種→2種とも144個
60360個の解があるもの→60360個
すべて書き出されました。
本当にありがとうございました。
ポイントをお送りさせていただきます。

2012/05/09 04:02:06
id:boaoa No.2

回答回数1ベストアンサー獲得回数0

最適化や値チェックもしてませんし、バグがあるかもしれないですがとりあえず
時間があれば多少修正します
不満な点があれば教えて下さい

短縮URL [ll.la] 9g6m

ついでに動かすブラウザも教えていただけるとより良く書けます

他4件のコメントを見る
id:minapoo

はい、この質問の例にさせていただきました組み合せ、boaoaさんのスクリプトにも書いていただいている組み合せですね。これは解が6個あります。これにつきまして書き出された解が4個でした。

2012/05/09 14:02:36
id:boaoa

ああ、なるほど、真ん中に追加する場合があるのを忘れておりました。
お役に立てなくて申し訳ないですが私の良い勉強にすることがなできました。
どうもありがとうございました。

2012/05/09 19:12:30

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません