• 締切済み

重複ありの全組み合わせ生成

出来れば、スマホで出来るならありがたいと思っていますが、難しいようなら、WindowsパソコンにExcelも入っているのでそちらでもと思います。 https://youtu.be/-S61o_F1ATE こちらに出てくる問題の組み合わせを自動的に文字出力できたらと思っています。 アップ! ダウン! レフト! ライト! チュー! ヘイ! わん! ニャー! 田中! 鈴木! という種類で、動画の通り、リスト中一つをピックアップするものから、恐らく数える限りで最大15個選定しているものもあるかと思います。 また、重複も含みます。例えば、 アップ! ダウン! アップ! ダウン! アップ! アップ! チュー! とか、 田中! 田中! 田中! 田中! 田中! 田中! 鈴木! とか、上手く説明できませんが、そんなのもあるかと思います。 実際に作業する時には、前述の文字を直接使わず、 アップ! ダウン! レフト! ライト! チュー! ヘイ! わん! ニャー! 田中! 鈴木! というリストのデータベースから、ランダムで抽出し出力する、という命令をするものなのですが、その命令を自動的に組み合わせて表示させられるようなものがあればと思ってます。 すみません、普段IT系の仕事でも無ければ、その関連の知識やスキルがあるわけでもないので、おかしなところがあるのや説明下手なのはご容赦頂けましたら幸いです。 仮に上記のデータベースをDATA1として、 DATA1-A,BR,DATA1-B,BR,DATA1-B と入力し、結果が レフト! 田中! 田中! とか わん! レフト! レフト! とかと表示されるとか、 DATA1-B,BR,DATA1-A,BR,DATA1-B と入力し、結果が、 わん! 田中! わん! とか 鈴木! レフト! 鈴木! とかと表示されるなどの感じになればとおもいますが、その DATA1-A,BR,DATA1-B,BR,DATA1-B DATA1-B,BR,DATA1-A,BR,DATA1-B という組み合わせのリストを、上記のように重複も込で生成できたらと思ってます。 1つを呼び出すもや、2つを呼び出すものは、特にツールやアプリをを使わなくても手打ちの方がむしろ早いかとは思いますが、それ以降を A,A,A A,B,A A,B,B B,A,B B,B,A A,B,C C,B,A C,A,A … A,B,A,B,A,B,A,C,D,C,O,J,A といった、1個を呼び出すだけから、2個を重複ありで組み合わせたもの、3個を重複ありで組み合わせたもの ・・・ 15個を組み合わせたもの、でリストを生成してくれたらと思ってます。 ブラウザ上でそのようなツールを提供してくださっているサイト、Google Play上にあるアプリで提供してくださっているもの、またはWindowsパソコンのExcelなどでのやり方があるようでしたら、教えていただけたら幸いです。 どうぞよろしくお願い致します。

みんなの回答

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.2

組合せを考える必要は無いように思います. (1) 言葉を何個出力するか 1~15の乱数nを出力する. (2) n個の乱数を発生させて,対応するデータを取り出す. ワークシート関数の RANDBETWEENを使えば良いです.

d-daisuke
質問者

補足

大変遅くなりましたが、ありがとうございます。 早速試させていただいたのですが、私の理解力の無さややり方が間違っているのか上手く行きませんでした・・。 先の方への補足にも再度極力伝わるように書かせていただいたのですが、該当サイトの仕様に合わせた言語?関数?リストが必要なのですが、頂いたものでは上手く行きませんでした・・。 お忙しい中回答を下さったのに、役立たせることが出来ず申し訳ございませんでした。

  • hiro_1116
  • ベストアンサー率30% (2555/8267)
回答No.1

御質問の意図が充分に理解できていないようにも思えるので、違っていたら申し訳ないのですが、「リストのデータベースから、ランダムで抽出し出力する」という目的なら、「重複ありの全組み合わせ生成」をしなくても、抽出したい個数の乱数を生成して、それに従ってリストから単語を抽出して並べるだけでも良いような気がしました。 いったん「重複ありの全組み合わせ生成」してリストとして保持する必要があるのでしょうか?

d-daisuke
質問者

補足

遅くなりましたが、ご回答ありがとうございます。 私の方が上手く伝えられていないかと思うので申し訳ございません。 目的のサイトにて、色々と以前からプログラミングというか、指定の機能を用いて色々試してはいるのですが、今回動画を掲載したスペースチャンネル5の問題のようなものを自動生成するには、面倒でも、質問に極力書いたような組み合わせの命令を与えてあげないと、結果がスペースチャンネル5の問題風に出力してくれないので、今も差し当たり、手動で組み合わせを日々空き時間に作っているのですが、そもそもこういう作業が得意でないもので、間違ったりしていて、恐らく10分の1も進んでいない状況です。 そのため、自動化出来るものがもしあればと質問させていただいた次第です。例えば、個人的にEXCELやらプログラミングやらで作る場合は、ご指摘のように不要な事をしている感じなのかもしれないですが、あくまで、目的のサイトの仕様に沿った事をしたい感じなものでして。たとえば、プログラミング的な事をしないで文字列だけでリストを作ってしまうと、リストの列の制限を超えてしまいまして。結果出力の文字数は超えないのですが。なので、プログラミングというか、命令でそのようにしています。 いくつか、Webツールを検索してみたのですが、ABC、ACB、CBAとかといった感じの重複しない全出力をするものがあったり、他にも重複しない全出力、というもので、何故かそもそも組み合わせがされないもの、とかは試しました。 補足でもうまく言えず申し訳ございません。 ですので、文字列としては A B C D E F G H I J K L M N O AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO BB BA BC ・ ・ AAA AAB AAC AAD AAE ・ ・ OAA OAB OAC ・ ・ AAAAAAAAAAAAAAA AAAAAAAAAAAAAAB AAAAAAAAAAAAAAC ・ ・ OAJAOAAAAAAAABC ・ ・ といったような出力になるような命令を与えるリストの全組み合わせが必要になってまして。 命令を与えてあげることによって、まず上記のひとつのもの A B C D E F G H I J K L M N O を a という呼び出し関数1つで済むので、それでリストの行を14行省略できまして。これだけなら大したことがないのですが、当然ながら組み合わせが増えるほど行が増えるので、前述の通り、某サイトの仕様で行が足りなくなってしまいます。 あと、今回、同じ文字列が重複して含まれることもあるので、それが厄介となっていて、そういった事も条件に含んでしまっているので、矛盾というか、出力された結果は重複していないのに、組み合わせに重複が含まれるのでそれは除外、となってしまうようです。 本当に上手く説明できなくてすみません。当初お伝えの通り、私自身、IT関連はかじっているものの、かなり浅いところで挫折してるのもあり、専門用語なんか分からないに等しいのに、使ってしまっているところがあるので申し訳ございません。 ご説明させていただく必要がある部分に関しては、またご説明させて頂けたらと思います。