シェアする

アナグラム全パターン作成する方法

シェアする

以前Pythonでアナグラム解析をする記事を書かせて頂きました。

【Python】超簡単にアナグラム解析
追記(2017/06/09):ページ内でアナグラム作成を出来るようにしましたー アナグラム作成はこちらから。 プログラムの説...

反響も良く、アナグラムの結果を全通り見れるサイトも見受けられなかったので、作ってみました~

↓こちらのリンクからアナグラムを作成出来ます。

アナグラム全パターン作成
アナグラムの全パターン(順列)を作成・出力をします。 文字が多すぎると処理に時間がかかるので、8文字までとします。 (8文字だと40320通り出力されます。) アナグラム全パターン作成の解説記事を書きました。 こちらもよろしくお願いします。
スポンサーリンク




作成したプログラム

サイトに埋め込む必要があった為、JavaScriptで書きました。

コピペすれば動いちゃいます(笑)

解説

フォームの作成

フォームはHTMLで作成をしています。

フォームが2つありますが、1つはダミーのフォームです。Enterでフォームを送信させない為です。

ここをJavaScript側から要素の中身を変更します。

文字列の分割 挿入

テキストボックスから文字を取得し、1文字づつに分割して配列に入れます。

ここで、8文字以上or0文字のとき警告文を出します。

順列を作成するmake_anagram()からアナグラムの配列を取得し、[   ]をつけて先ほど作ったHTML要素に挿入します。

順列

こちらの関数を使い順列を求めます。

配列の頭を変えて全てのパターンを再起処理を使い総当たりします。

文字列 [m,i,x]の場合
[m],[i,x] → [m],[i],[x], [m],[x],[i]

[i],[m,x] → [i],[m],[x], [i],[x],[m]

[x],[m,i] → [x],[m],[i], [x],[i],[m]

感想

今回はサイトに埋め込む関係上、JavaScriptで書きましたが、Pythonと比べると大変でした。先に簡単な方を知ってしまったから......(小声)

なんでJavaScriptでは標準で順列を作成するオブジェクトがないのかなぁ......

結果. Pythonは神

余談

メンバーのオサダ君が僕に触発され、JavaScriptを学んでいるようです。

初心者目線でとてもわかりやすいと思うので、興味のある方は是非!!(僕も勉強させてもらってます)

超初心者向け!!JavaScriptも一緒に学ぼう。Part.1
さぁ、オーカワに触発されPC言語について学び始めたオサダです。 今回は超初心者向けJavaScript。比較的簡単な言語ながら開発されてか...
超初心者向け!!JavaScriptも一緒に学ぼう。Part.2
前回の続きです。Part.1はこちら。 前回学んだことを(めちゃめちゃ)発展させながら、オーカワの運勢診断をアレンジしてみます。できる...

てか僕の前のJavaScriptの記事から急激にプログラムが難しくなってますね(笑)

[WordPress][JavaScript]で運勢診断作ってみたー
どうもー最近JavaScriptを勉強しようと思ってきたオーカワです。 最近WordPressで「ここをこうしたい」とか「こう出来たら...

ブログを書いた時は、初心者でしたが、今ではJavaScriptを使い、ブラウザからロボットを操作出来るようにしたり、家の照明装置やカメラを操作してます。

今はNode.jsを勉強中ってか、Node.jsを使ってとあるwebサーバを作ってます。出来たらブログに書くつもりなので、乞うご期待。

参考

## 順列の生成 皆さんはじめまして。みやねゆうじと申します。今回がQiitaデビューです。 さて全ての要素の組み合わせを検査して最適解を求める問題がありますが、これは一般に全数検索アルゴリズムを適用して順列組み合わせを生成して解...

いつもお世話になっております。

The following two tabs change content below.

オーカワ

ロボット勉強中の大学4年生!!いつもはTwitterにいるよ。フォローちてね♪
オーカワ専用のブログ作りました。よろしくお願いします。
スポンサーリンク







シェアする

フォローする