(57)【要約】【課題】  ２個の集合から数値を１個ずつ抽出することにより得られる組み合わせの一覧を生成する際、ソート処理,重複チェック処理を行うことなく、組み合わせの並び順及び組み合わせ中の２つの数値が昇順で、重複のない一覧を生成する。【解決手段】  最大値抽出手段12は、集合α，βから最大値αmax,βmaxを抽出し、二次元配列確保手段13は、要素数が(αmax,βmax)の二次元配列25を確保し、各要素にOFFを設定する。設定手段14は、集合α,βから数値を１個ずつ抽出した各組み合わせ毎に、その組み合わせ中の２個の数値とその大小関係とに基づいて、二次元配列25中の要素を１つ選択し、選択した要素にONを設定する。組み合わせ出力手段15は、二次元配列25の先頭の要素から順番にONが設定されているか否かを調べ、ONが設定されている要素については、その位置に応じた組み合わせを出力する。【選択図】      図１
2006285827.tif 000002
【特許請求の範囲】
【請求項１】
１個あるいは複数個の数値を含んだ第１の集合における最大値を第１の最大値として抽出すると共に、１個あるいは複数個の数値を含んだ第２の集合における最大値を第２の最大値として抽出する最大値抽出手段と、
要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の配列を確保し、該確保した配列の各要素にＯＦＦを設定する配列確保手段と、
前記第１および第２の集合から数値を１個ずつ抽出した各組み合わせ毎に、その組み合わせ中の２個の数値とその大小関係とに基づいて前記配列中の要素の内の１つを選択し、該選択した要素にＯＮを設定する設定手段と、
前記配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記配列中の位置に応じた２つの数値の組み合わせを出力する組み合わせ出力手段とを備えたことを特徴とする組み合わせ生成装置。
【請求項２】
請求項１記載の組み合わせ生成装置において、
前記配列確保手段が、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の二次元配列を確保すると共に、該確保した二次元配列の各要素にＯＦＦを設定する構成を有し、
前記設定手段が、前記二次元配列の要素の内の、要素位置が（前記組み合わせ中の大きくない方の数値，前記組み合わせ中の他方の数値）の要素にＯＮを設定する構成を有し、
前記組み合わせ出力手段が、前記二次元配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記二次元配列中の位置に応じた２つの数値の組み合わせを出力する構成を有することを特徴とする組み合わせ生成装置。
【請求項３】
請求項１記載の組み合わせ生成装置において、
前記配列確保手段が、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の一次元配列を確保し、該確保した一次元配列の各要素にＯＦＦを設定する構成を有し、
前記設定手段が、前記一次元配列の要素の内の、第｛（前記組み合わせ中の大きくない方の数値−１）×（前記第１および第２の最大値の内の小さくない方）＋（前記組み合わせ中の小さくない方の数値−１）｝番目の要素にＯＮを設定する構成を有し、
前記組み合わせ出力手段が、前記一次元配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記一次元配列中の位置に応じた２つの数値の組み合わせを出力する構成を有することを特徴とする組み合わせ生成装置。
【請求項４】
請求項１記載の組み合わせ生成装置において、
第１および第２の集合記憶部と、
該第１および該第２の集合記憶部にそれぞれ前記第１および第２の集合を格納する集合入力手段と、
最大値記憶部と、
バッファ領域とを備え、且つ、
前記最大値抽出手段が、前記第１の集合記憶部に格納されている第１の集合の最大値を抽出し、該抽出した最大値を第１の最大値として前記最大値記憶部に格納すると共に、前記第２の集合記憶部に格納されている第２の集合の最大値を抽出し、該抽出した最大値を第２の最大値として前記最大値記憶部に格納する構成を有し、
前記配列確保手段が、前記最大値記憶部に格納されている第１および第２の最大値に基づいて、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の配列を前記バッファ領域に確保し、該確保した配列の各要素にＯＦＦを設定する構成を有することを特徴とする組み合わせ生成装置。
【請求項５】
最大値抽出手段が、１個あるいは複数個の数値を含んだ第１の集合における最大値を第１の最大値として抽出すると共に、１個あるいは複数個の数値を含んだ第２の集合における最大値を第２の最大値として抽出し、
配列確保手段が、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の配列を確保し、該確保した配列の各要素にＯＦＦを設定し、
設定手段が、前記第１および第２の集合から数値を１個ずつ抽出した各組み合わせ毎に、その組み合わせ中の２個の数値とその大小関係とに基づいて前記配列中の要素の内の１つを選択し、該選択した要素にＯＮを設定し、
組み合わせ出力手段が、前記配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記配列中の位置に応じた２つの数値の組み合わせを出力することを特徴とする組み合わせ生成方法。
【請求項６】
請求項５記載の組み合わせ生成方法において、
前記配列確保手段が、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の二次元配列を確保すると共に、該確保した二次元配列の各要素にＯＦＦを設定し、
前記設定手段が、前記二次元配列の要素の内の、要素位置が（前記組み合わせ中の大きくない方の数値，前記組み合わせ中の他方の数値）の要素にＯＮを設定し、
前記組み合わせ出力手段が、前記二次元配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記二次元配列中の位置に応じた２つの数値の組み合わせを出力することを特徴とする組み合わせ生成方法。
【請求項７】
請求項５記載の組み合わせ生成方法において、
前記配列確保手段が、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の一次元配列を確保し、該確保した一次元配列の各要素にＯＦＦを設定し、
前記設定手段が、前記一次元配列の要素の内の、第｛（前記組み合わせ中の大きくない方の数値−１）×（前記第１および第２の最大値の内の小さくない方）＋（前記組み合わせ中の小さくない方の数値−１）｝番目の要素にＯＮを設定し、
前記組み合わせ出力手段が、前記一次元配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記一次元配列中の位置に応じた２つの数値の組み合わせを出力することを特徴とする組み合わせ生成方法。
【請求項８】
請求項５記載の組み合わせ生成方法において、
集合入力手段が、前記第１および前記第２の集合をそれぞれ第１および第２の集合記憶部に格納し、
前記最大値抽出手段が、前記第１の集合記憶部に格納されている第１の集合の最大値を抽出し、該抽出した最大値を第１の最大値として最大値記憶部に格納すると共に、前記第２の集合記憶部に格納されている第２の集合の最大値を抽出し、該抽出した最大値を第２の最大値として前記最大値記憶部に格納し、
前記配列確保手段が、前記最大値記憶部に格納されている第１および第２の最大値に基づいて、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の配列を前記バッファ領域に確保し、該確保した配列の各要素にＯＦＦを設定することを特徴とする組み合わせ生成方法。
【請求項９】
コンピュータを、
１個あるいは複数個の数値を含んだ第１の集合における最大値を第１の最大値として抽出すると共に、１個あるいは複数個の数値を含んだ第２の集合における最大値を第２の最大値として抽出する最大値抽出手段、
要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の配列を確保し、該確保した配列の各要素にＯＦＦを設定する配列確保手段、
前記第１および第２の集合から数値を１個ずつ抽出した各組み合わせ毎に、その組み合わせ中の２個の数値とその大小関係とに基づいて前記配列中の要素の内の１つを選択し、該選択した要素にＯＮを設定する設定手段、
前記配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記配列中の位置に応じた２つの数値の組み合わせを出力する組み合わせ出力手段として機能させるためのプログラム。
【請求項１０】
請求項９記載のプログラムにおいて、
前記配列確保手段が、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の二次元配列を確保すると共に、該確保した二次元配列の各要素にＯＦＦを設定する構成を有し、
前記設定手段が、前記二次元配列の要素の内の、要素位置が（前記組み合わせ中の大きくない方の数値，前記組み合わせ中の他方の数値）の要素にＯＮを設定する構成を有し、
前記組み合わせ出力手段が、前記二次元配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記二次元配列中の位置に応じた２つの数値の組み合わせを出力する構成を有することを特徴とするプログラム。
【請求項１１】
請求項９記載のプログラムにおいて、
前記配列確保手段が、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の一次元配列を確保し、該確保した一次元配列の各要素にＯＦＦを設定する構成を有し、
前記設定手段が、前記一次元配列の要素の内の、第｛（前記組み合わせ中の大きくない方の数値−１）×（前記第１および第２の最大値の内の小さくない方）＋（前記組み合わせ中の小さくない方の数値−１）｝番目の要素にＯＮを設定する構成を有し、
前記組み合わせ出力手段が、前記一次元配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記一次元配列中の位置に応じた２つの数値の組み合わせを出力する構成を有することを特徴とするプログラム。
【請求項１２】
第１および第２の集合記憶部と、最大値記憶部と、バッファ領域とを備えたコンピュータを、
該第１および該第２の集合記憶部にそれぞれ１個あるいは複数個の数値を含む第１および第２の集合を格納する集合入力手段、
前記第１の集合記憶部に格納されている第１の集合の最大値を抽出し、該抽出した最大値を第１の最大値として前記最大値記憶部に格納すると共に、前記第２の集合記憶部に格納されている第２の集合の最大値を抽出し、該抽出した最大値を第２の最大値として前記最大値記憶部に格納する最大値抽出手段、
前記最大値記憶部に格納されている第１および第２の最大値に基づいて、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の配列を前記バッファ領域に確保し、該確保した配列の各要素にＯＦＦを設定する配列確保手段、
前記二次元配列の要素の内の、要素位置が（前記組み合わせ中の大きくない方の数値，前記組み合わせ中の他方の数値）の要素にＯＮを設定する設定手段、
前記二次元配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記二次元配列中の位置に応じた２つの数値の組み合わせを出力する組み合わせ出力手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された複数個の数値に基づいて数値の組み合わせを生成する組み合わせ生成技術に関し、特に、２つの数値集合からそれぞれ数値を１つずつ取り出して組み合わせを生成する組み合わせ生成技術に関する。
【背景技術】
【０００２】
入力されたＮ個の数値からＭ個（Ｎ≧Ｍ）個の数値を抽出することにより、Ｍ個の数値からなる組み合わせを全て生成し、それらを昇順に出力するということは従来から行われている（例えば、特許文献１，２参照）。この技術は、Ｎ個の数値を含んだ１個の集合からＭ個の数値を抽出することにより得られる組み合わせの一覧を生成する技術といえ、例えば、ロトくじ（数字選択式宝くじ）を購入する際に利用される。
【０００３】
ところで、近年、馬券の購入方法としてフォーメーションと呼ばれる方法が採用されるようになってきている。フォーメーションを利用して、例えば、複勝式の馬券を購入する場合は、マークシートの１着欄に１着になると予想する枠の枠番号を１個あるいは複数個記入し、２着欄に２着になると予想する枠の枠番号を１個あるいは複数個記入する。例えば、１枠，２枠，４枠の何れかが１着になり、１枠，２枠，３枠の何れかが２着になると予想した場合には、マークシートの１着欄の数字「１，２，４」を塗り潰し、２着欄の数字「１，２，３」を塗り潰す。このマークシートを用いて馬券を購入した場合、「１−１」、「１−２」、「１−３」、「１−４」、「２−２」、「２−３」、「２−４」、「３−４」の組み合わせを購入したことになる。
【特許文献１】特開２００３−６３７２号公報
【特許文献１】特開２００２−７３８８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
フォーメーションにより複勝式の馬券などを購入する場合、それに先立って、記入したマークシートでは、どのような組み合わせを購入することになるのかを確認したいという要望がある。フォーメーションは、ロトくじと異なり、集合が２個（１着になると予想した枠番号の集合と、２着になると予想した枠番号の集合）存在するため、特許文献１，２に記載されている技術を利用して組み合わせの一覧を得ることはできない。
【０００５】
フォーメーションの場合には、例えば、１着になると予想した枠番号を第１の集合α、２着になると予想した枠番号を第２の集合βとし、集合α，βからそれぞれ１個ずつ枠番号を抽出し、全ての枠番号の組み合わせを生成することが必要になる。また、組み合わせの確認を容易にするために、組み合わせ中の数値の関係を昇順にし、且つ、組み合わせの並び順も昇順にすることが必要になる。つまり、生成した組み合わせを「α１−β１」，「α２−β２」とすると、以下の条件（Ａ），（Ｂ）を満たすようにすることが必要になる。更に、組み合わせの重複出力も防止することが必要になる。
【０００６】
（Ａ）（α１≦β１）且つ（α２≦β２）
（Ｂ）（α１＜α２）もしくは（α１＝α２且つβ１＜β２）
【０００７】
以上の条件を満たす組み合わせの一覧を生成する方法としては、例えば、図７にフローチャートに示す方法が考えられる。
【０００８】
最初のステップＳ７１では、集合α，βからそれぞれ数値を１個ずつ抽出し、２個の数値の全ての組み合わせを全て生成する。今、例えば、第１の集合αには「１，２，４」が、第２の集合には「１，２，３」が含まれているとすると、ステップＳ７１では、次の９個の組み合わせが生成されることになる。
【０００９】
・ステップＳ７１で生成される組み合わせ；「１−１」，「１−２」，「１−３」，「２−１」，「２−２」，「２−３」，「４−１」，「４−２」，「４−３」
【００１０】
次のステップＳ７２では、ステップＳ７１で得られた各組み合わせ中の２個の数値を昇順にソートする。ステップＳ７１で生成された組み合わせが上記したものであるとすると、ソート結果は下記のものとなる。
【００１１】
・ステップＳ７２のソート結果；「１−１」，「１−２」，「１−３」，「１−２」，「２−２」，「２−３」，「１−４」，「２−４」，「３−４」
【００１２】
ステップＳ７３では、組み合わせを昇順にソートする。ステップＳ７３のソート結果は下記のものとなる。
【００１３】
・ステップＳ７３のソート結果；「１−１」，「１−２」，「１−２」，「１−３」，「１−４」，「２−２」，「２−３」，「２−４」，「３−４」
【００１４】
ステップＳ７４では、重複している組み合わせの有無をチェックし、重複している組み合わせが存在する場合は、その内の１個だけを有効にし、残りは無効（削除）にする重複チェック処理を行う。ステップＳ７４の処理結果は、下記のものとなる。
【００１５】
・ステップＳ７４の処理結果；「１−１」，「１−２」，「１−３」，「１−４」，「２−２」，「２−３」，「２−４」，「３−４」
【００１６】
ステップＳ７５では、ステップＳ７４の処理結果を表示部などに出力する処理を行う。
【００１７】
この図７のフローチャートに示す処理を行うことにより、２個の集合からそれぞれ数値を１個ずつ抽出した組み合わせに基づいて、下記の条件を満たす組み合わせの一覧を生成することができる。
【００１８】
・組み合わせ中の２個の数値の関係が昇順である。
・組み合わせの並び順が昇順である。
・重複する組み合わせが存在しない。
【００１９】
しかし、上述した方法では、２個の集合からそれぞれ数値を１個ずつ抽出して、抽出した２個の数値を含む組み合わせを全て生成した後、組み合わせ中の２つの数値の関係を昇順に並べ替えるソート処理、組み合わせの出力順を昇順に並べ替えるソート処理、および組み合わせの重複を防止する重複チェック処理を行うことが必要になるため、処理時間がかかるという問題があった。
【００２０】
そこで、本発明の目的は、２個の集合からそれぞれ１個ずつ数値を抽出することにより得られる組み合わせの一覧を生成する際、ソート処理や重複チェック処理を行うことなく、組み合わせの並び順および組み合わせ中の２つの数値の関係が昇順で、且つ重複する組み合わせが存在しない一覧を生成できるようにすることにある。
【課題を解決するための手段】
【００２１】
本発明にかかる第１の組み合わせ生成装置は、
１個あるいは複数個の数値を含んだ第１の集合における最大値を第１の最大値として抽出すると共に、１個あるいは複数個の数値を含んだ第２の集合における最大値を第２の最大値として抽出する最大値抽出手段と、
要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の配列を確保し、該確保した配列の各要素にＯＦＦを設定する配列確保手段と、
前記第１および第２の集合から数値を１個ずつ抽出した各組み合わせ毎に、その組み合わせ中の２個の数値とその大小関係とに基づいて前記配列中の要素の内の１つを選択し、該選択した要素にＯＮを設定する設定手段と、
前記配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記配列中の位置に応じた２つの数値の組み合わせを出力する組み合わせ出力手段とを備えたことを特徴とする。
【００２２】
本発明にかかる第２の組み合わせ生成装置は、第１の組み合わせ生成装置において、
前記配列確保手段が、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の二次元配列を確保すると共に、該確保した二次元配列の各要素にＯＦＦを設定する構成を有し、
前記設定手段が、前記二次元配列の要素の内の、要素位置が（前記組み合わせ中の大きくない方の数値，前記組み合わせ中の他方の数値）の要素にＯＮを設定する構成を有し、
前記組み合わせ出力手段が、前記二次元配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記二次元配列中の位置に応じた２つの数値の組み合わせを出力する構成を有することを特徴とする。
【００２３】
本発明にかかる第３の組み合わせ生成装置は、第１の組み合わせ生成装置において、
前記配列確保手段が、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の一次元配列を確保し、該確保した一次元配列の各要素にＯＦＦを設定する構成を有し、
前記設定手段が、前記一次元配列の要素の内の、第｛（前記組み合わせ中の大きくない方の数値−１）×（前記第１および第２の最大値の内の小さくない方）＋（前記組み合わせ中の小さくない方の数値−１）｝番目の要素にＯＮを設定する構成を有し、
前記組み合わせ出力手段が、前記一次元配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記一次元配列中の位置に応じた２つの数値の組み合わせを出力する構成を有することを特徴とする。
【００２４】
本発明にかかる第４の組み合わせ生成装置は、第１の組み合わせ生成装置において、
第１および第２の集合記憶部と、
該第１および該第２の集合記憶部にそれぞれ前記第１および第２の集合を格納する集合入力手段と、
最大値記憶部と、
バッファ領域とを備え、且つ、
前記最大値抽出手段が、前記第１の集合記憶部に格納されている第１の集合の最大値を抽出し、該抽出した最大値を第１の最大値として前記最大値記憶部に格納すると共に、前記第２の集合記憶部に格納されている第２の集合の最大値を抽出し、該抽出した最大値を第２の最大値として前記最大値記憶部に格納する構成を有し、
前記配列確保手段が、前記最大値記憶部に格納されている第１および第２の最大値に基づいて、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の配列を前記バッファ領域に確保し、該確保した配列の各要素にＯＦＦを設定する構成を有することを特徴とする。
【００２５】
本発明にかかる第１の組み合わせ生成方法は、
最大値抽出手段が、１個あるいは複数個の数値を含んだ第１の集合における最大値を第１の最大値として抽出すると共に、１個あるいは複数個の数値を含んだ第２の集合における最大値を第２の最大値として抽出し、
配列確保手段が、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の配列を確保し、該確保した配列の各要素にＯＦＦを設定し、
設定手段が、前記第１および第２の集合から数値を１個ずつ抽出した各組み合わせ毎に、その組み合わせ中の２個の数値とその大小関係とに基づいて前記配列中の要素の内の１つを選択し、該選択した要素にＯＮを設定し、
組み合わせ出力手段が、前記配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記配列中の位置に応じた２つの数値の組み合わせを出力することを特徴とする。
【００２６】
本発明にかかる第２の組み合わせ生成方法は、第１の組み合わせ生成方法において、
前記配列確保手段が、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の二次元配列を確保すると共に、該確保した二次元配列の各要素にＯＦＦを設定し、
前記設定手段が、前記二次元配列の要素の内の、要素位置が（前記組み合わせ中の大きくない方の数値，前記組み合わせ中の他方の数値）の要素にＯＮを設定し、
前記組み合わせ出力手段が、前記二次元配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記二次元配列中の位置に応じた２つの数値の組み合わせを出力することを特徴とする。
【００２７】
本発明にかかる第３の組み合わせ生成方法は、第１の組み合わせ生成方法において、
前記配列確保手段が、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の一次元配列を確保し、該確保した一次元配列の各要素にＯＦＦを設定し、
前記設定手段が、前記一次元配列の要素の内の、第｛（前記組み合わせ中の大きくない方の数値−１）×（前記第１および第２の最大値の内の小さくない方）＋（前記組み合わせ中の小さくない方の数値−１）｝番目の要素にＯＮを設定し、
前記組み合わせ出力手段が、前記一次元配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記一次元配列中の位置に応じた２つの数値の組み合わせを出力することを特徴とする。
【００２８】
本発明にかかる第４の組み合わせ生成方法は、第１の組み合わせ生成方法において、
集合入力手段が、前記第１および前記第２の集合をそれぞれ第１および第２の集合記憶部に格納し、
前記最大値抽出手段が、前記第１の集合記憶部に格納されている第１の集合の最大値を抽出し、該抽出した最大値を第１の最大値として最大値記憶部に格納すると共に、前記第２の集合記憶部に格納されている第２の集合の最大値を抽出し、該抽出した最大値を第２の最大値として前記最大値記憶部に格納し、
前記配列確保手段が、前記最大値記憶部に格納されている第１および第２の最大値に基づいて、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の配列を前記バッファ領域に確保し、該確保した配列の各要素にＯＦＦを設定することを特徴とする。
【００２９】
本発明にかかる第１のプログラムは、
コンピュータを、
１個あるいは複数個の数値を含んだ第１の集合における最大値を第１の最大値として抽出すると共に、１個あるいは複数個の数値を含んだ第２の集合における最大値を第２の最大値として抽出する最大値抽出手段、
要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の配列を確保し、該確保した配列の各要素にＯＦＦを設定する配列確保手段、
前記第１および第２の集合から数値を１個ずつ抽出した各組み合わせ毎に、その組み合わせ中の２個の数値とその大小関係とに基づいて前記配列中の要素の内の１つを選択し、該選択した要素にＯＮを設定する設定手段、
前記配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記配列中の位置に応じた２つの数値の組み合わせを出力する組み合わせ出力手段として機能させる。
【００３０】
本発明にかかる第２のプログラムは、第１のプログラムにおいて、
前記配列確保手段が、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の二次元配列を確保すると共に、該確保した二次元配列の各要素にＯＦＦを設定する構成を有し、
前記設定手段が、前記二次元配列の要素の内の、要素位置が（前記組み合わせ中の大きくない方の数値，前記組み合わせ中の他方の数値）の要素にＯＮを設定する構成を有し、
前記組み合わせ出力手段が、前記二次元配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記二次元配列中の位置に応じた２つの数値の組み合わせを出力する構成を有することを特徴とする。
【００３１】
本発明にかかる第３のプログラムは、第１のプログラムにおいて、
前記配列確保手段が、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の一次元配列を確保し、該確保した一次元配列の各要素にＯＦＦを設定する構成を有し、
前記設定手段が、前記一次元配列の要素の内の、第｛（前記組み合わせ中の大きくない方の数値−１）×（前記第１および第２の最大値の内の小さくない方）＋（前記組み合わせ中の小さくない方の数値−１）｝番目の要素にＯＮを設定する構成を有し、
前記組み合わせ出力手段が、前記一次元配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記一次元配列中の位置に応じた２つの数値の組み合わせを出力する構成を有することを特徴とする。
【００３２】
本発明にかかる第４のプログラムは、
第１および第２の集合記憶部と、最大値記憶部と、バッファ領域とを備えたコンピュータを、
該第１および該第２の集合記憶部にそれぞれ１個あるいは複数個の数値を含む第１および第２の集合を格納する集合入力手段、
前記第１の集合記憶部に格納されている第１の集合の最大値を抽出し、該抽出した最大値を第１の最大値として前記最大値記憶部に格納すると共に、前記第２の集合記憶部に格納されている第２の集合の最大値を抽出し、該抽出した最大値を第２の最大値として前記最大値記憶部に格納する最大値抽出手段、
前記最大値記憶部に格納されている第１および第２の最大値に基づいて、要素数が｛（前記第１の最大値）×（前記第２の最大値）｝個の配列を前記バッファ領域に確保し、該確保した配列の各要素にＯＦＦを設定する配列確保手段、
前記二次元配列の要素の内の、要素位置が（前記組み合わせ中の大きくない方の数値，前記組み合わせ中の他方の数値）の要素にＯＮを設定する設定手段、
前記二次元配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の前記二次元配列中の位置に応じた２つの数値の組み合わせを出力する組み合わせ出力手段として機能させる。
【００３３】
〔作用〕
第１，第２の集合が入力されると、最大値抽出手段が、第１，第２の集合中の最大値をそれぞれ第１，第２の最大値として抽出し、配列確保手段が、要素数が｛（第１の最大値）×（第２の最大値）｝個の配列を確保し、確保した配列中の各要素にＯＦＦを設定する。配列の各要素にＯＦＦが設定されると、設定手段が、第１，第２の集合から数値を１個ずつ抽出した各組み合わせ毎に、その組み合わせ中の２個の数値とその大小関係とに基づいて配列中の要素の内の１つを選択し、選択した要素にＯＮを設定する。この処理が終了すると、組み合わせ出力手段が、配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の配列中の位置に応じた２つの数値の組み合わせを出力する。
【発明の効果】
【００３４】
本発明によれば、２個の集合からそれぞれ数値を１個ずつ抽出することにより得られる組み合わせの一覧を生成する際、ソート処理や重複チェック処理を行うことなく、組み合わせの並び順および組み合わせ中の２つの数値の関係が昇順で、且つ重複する組み合わせが存在しない組み合わせの一覧を生成することが可能になる。その理由は、第１，第２の集合からそれぞれ数値を１個ずつ抽出した組み合わせ毎に、その組み合わせ中の２個の数値とその大小関係とに基づいて配列中の要素の内の１つを選択し、選択した要素をＯＮにする設定手段と、配列の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の配列中の位置に応じた２つの数値の組み合わせを出力する組み合わせ出力手段とを備えているからである。
【発明を実施するための最良の形態】
【００３５】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００３６】
〔第１の実施の形態の構成〕
図１は本発明にかかる組み合わせ生成装置１の第１の実施の形態の構成例を示すブロック図である。同図を参照すると、組み合わせ生成装置１は、集合入力手段１１と、最大値抽出手段１２と、二次元配列確保手段１３と、設定手段１４と、組み合わせ出力手段１５と、ＬＣＤ等の表示部１６とを含んでいる。また、組み合わせ生成装置１は、記憶装置２を備えており、記憶装置２には第１の集合記憶部２１と、第２の集合記憶部２２と、最大値記憶部２３と、バッファ領域２４と、組み合わせ記憶部２６とが設けられている。
【００３７】
集合入力手段１１は、利用者などによって入力された第１および第２の集合α，βをそれぞれ第１，第２の集合記憶部２１，２２に格納する機能を有する。なお、第１，第２の集合α，βは、それぞれ１個あるいは複数個の数値（０以上の整数値）を含む。
【００３８】
最大値抽出手段１２は、集合記憶部２１，２２に格納されている集合α，βの最大値αmax，βmaxを抽出し、最大値記憶部２３に格納する機能を有する。
【００３９】
二次元配列確保手段１３は、αmax×βmax個の要素からなる二次元配列２５をバッファ領域２４上に確保し、二次元配列２５の各要素にＯＦＦを設定する機能を有する。
【００４０】
設定手段１４は、集合記憶部２１，２２に格納されている集合α，βからそれぞれ数値を１個ずつ抽出した各組み合わせ毎に、その組み合わせ中の２個の数値と、その大小関係とに基づいて二次元配列２５の要素を１つ選択し、選択した要素にＯＮを設定する機能を有する。
【００４１】
組み合わせ出力手段１５は、二次元配列２５の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の二次元配列２５中の位置に応じた２つの数値の組み合わせを生成する機能や、生成した組み合わせを生成順に組み合わせ記憶部２６に格納したり、表示部１６に表示する機能を有する。
【００４２】
このような機能を有する組み合わせ生成装置１は、コンピュータによって実現可能であり、コンピュータによって実現する場合は、例えば次のようにする。コンピュータを組み合わせ生成装置１として機能させるためのプログラムを記録したディスク，半導体メモリ，その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に集合入力手段１１、最大値抽出手段１２、二次元配列確保手段１３、設定手段１４および組み合わせ出力手段１５を実現する。
【００４３】
〔第１の実施の形態の動作の説明〕
次に本実施の形態の動作について詳細に説明する。
【００４４】
集合入力手段１１は、利用者などによって第１，第２の集合α，βが入力されると、図２のフローチャートに示すように、集合α，βをそれぞれ集合記憶部２１，２２に格納する（ステップＳ201）。
【００４５】
その後、最大値抽出手段１２が、集合記憶部２１，２２に格納されている集合α，βの最大値αmax，βmaxを抽出し、最大値記憶部２３に格納する（ステップＳ202，Ｓ203）。
【００４６】
二次元配列確保手段１３は、最大値記憶部２３に最大値αmax，βmaxが格納されると、先ず、（αmax×βmax）個の要素からなる二次元配列２５をバッファ領域２４上に確保し、次いで、二次元配列２５の各要素にＯＦＦを設定する（ステップＳ204，Ｓ205）。
【００４７】
設定手段１４は、ステップＳ205の処理が完了すると、集合記憶部２１，２２に格納されている集合α，βからそれぞれ第１番目の数値を抽出し、抽出した数値をα１，β１とする（ステップＳ206〜Ｓ209）。その後、設定手段１４は、両者の大小関係を調べる（ステップＳ210）。
【００４８】
そして、α１≧β１の場合（ステップＳ210がYes）は、二次元配列２５の要素（β１，α１）にＯＮを設定する（ステップＳ211，Ｓ213）。これに対して、α１＜β１の場合（ステップＳ210がNo）は、二次元配列２５の要素（α１，β１）にＯＮを設定する（ステップＳ212，Ｓ213）。ここで、α１，β１の大小関係により、処理を切り分けているのは、組み合わせ中の２個の数値の関係が昇順になるようにするためである。
【００４９】
その後、設定手段１４は、集合βから次の数値を抽出し（ステップＳ215，Ｓ209）、前述したステップＳ210〜Ｓ213の処理を行う。この処理を集合βの最後の数値まで行うと（ステップＳ214がYes）、設定手段１４は、集合βから先頭の数値を抽出すると共に集合αから次の数値を取り出し（ステップＳ216，Ｓ218，Ｓ208，Ｓ209）、前述したステップＳ210〜Ｓ215の処理を行う。この処理を集合αの最後の数値まで行うと（ステップＳ217がYes）、集合α，βからそれぞれ数値を１個ずつ抽出した全ての組み合わせについて、二次元配列２５の該当する要素にＯＮを設定する処理が終了したことになるので、設定手段１４は、組み合わせ出力手段１５を起動する。
【００５０】
これにより、組み合わせ出力手段１５は、先ず、第１，第２のカウント値Ｋ１，Ｋ２を共に「１」とし（ステップＳ219）、その後、二次元配列２５の要素（Ｋ１，Ｋ２）＝（１，１）にＯＮが設定されているか否かを調べる（ステップＳ220）。
【００５１】
そして、ＯＮが設定されている場合（ステップＳ220がYes）は、組み合わせ「Ｋ１−Ｋ２」（＝「１−１」）を組み合わせ記憶部２６に格納すると共に表示部１６に出力し（ステップＳ221）、その後、カウント値Ｋ２を＋１する（ステップＳ223）。これに対して、ＯＦＦが設定されている場合（ステップＳ220がNo）は、カウント値Ｋ２を＋１する（ステップＳ223）。その後、組み合わせ出力手段１５は、二次元配列２５の要素（Ｋ１，Ｋ２）を対象にして前述したステップＳ220，Ｓ221の処理を行う。この処理をカウント値Ｋ２がαmaxになるまで行うと、組み合わせ出力手段１５は、カウント値Ｋ２を「１」にすると共にカウント値Ｋ１を＋１し（ステップＳ224，Ｓ226）、前述したステップＳ220〜Ｓ223の処理を行う。この処理をカウント値Ｋ１がβmaxとなるまで行うと（ステップＳ225がYes）、二次元配列２５の全ての要素を処理対象にしたことになるので、組み合わせ出力手段１５は、その処理を終了する。
【００５２】
次に、具体例を挙げて本実施の形態の動作について説明する。
【００５３】
今、例えば、集合入力手段１１に、集合α（１，２，４）と、集合β（１，２，３）が入力されたとする。
【００５４】
この例の場合、ステップＳ202，Ｓ203において最大値抽出手段１２が抽出する最大値αmax，βmaxは、それぞれ「４」，「３」となるので、二次元配列確保手段１３は、ステップＳ204においてαmax×βmax＝４×３＝１２個の要素からなる二次元配列２５をバッファ領域２４上に確保し、ステップＳ205において、図３（Ａ）に示すように、二次元配列２５の各要素にＯＦＦを設定することになる。
【００５５】
その後、設定手段１４が、集合α，βから第１番目の数値を抽出し、α１，β１とする（ステップＳ206〜Ｓ209）。この例の場合、α１＝β１＝１なので（ステップＳ210がYes）、設定手段１４は、図３（Ｂ）に示す示すように、二次元配列２５の要素（１，１）にＯＮを設定する（ステップＳ213）。
【００５６】
次いで、設定手段１４は、集合βから第２番目の数値「２」を抽出し、それをβ１とする（ステップＳ215，Ｓ209）。この場合、α１＝１，β１＝２であり、α１＜β１であるので（ステップＳ210がNo）、設定手段１４は、図３（Ｃ）に示すように、二次元配列２５の要素（１，２）にＯＮを設定する（ステップＳ213）。
【００５７】
その後、集合βの最後の値「４」まで、前述した処理を行うと（ステップＳ214がYes）、設定手段１４は、集合α，βからそれぞれ第２番目，第１番目の数値「２」，「１」を取り出し、α１，β１とする（ステップＳ216，Ｓ218，Ｓ208，Ｓ209）。この場合、α１≧β１であるので（ステップＳ210がYes）、設定手段１４は、二次元配列２５の要素（１，２）にＯＮを設定する（ステップＳ211，Ｓ213）。以上の処理を、集合αの最後の数値「４」まで行うことにより、二次元配列２５の各要素（１，１）〜（４，３）の内容は、図３（Ｄ）に示すものとなる。
【００５８】
設定手段１４の処理が終了すると、組み合わせ出力手段１５は、カウント値Ｋ１，Ｋ２を共に「１」とし、二次元配列２５の要素（Ｋ１，Ｋ２）＝（１，１）にＯＮが設定されているか否かを調べる（ステップＳ219，Ｓ220）。図３（Ｄ）を参照すると、要素（１，１）にはＯＮが設定されているので（ステップＳ220がYes）、組み合わせ出力手段１５は、組み合わせ「１−１」を表示部１６に出力すると共に、組み合わせ記憶部２６に格納する（ステップＳ221）。
【００５９】
その後、組み合わせ出力手段１５は、カウント値Ｋ２＝「２」とし（ステップＳ223）、二次元配列２５の要素（１，２）にＯＮが設定されているか否かを調べる（ステップＳ220）。この例の場合、図３（Ｄ）に示すように、要素（１，２）にはＯＮが設定されているので（ステップＳ220がYes）、組み合わせ「１−２」を出力する（ステップＳ221）。
【００６０】
以下、組み合わせ出力手段１５は、二次元配列２５の要素（１，３）、（１，４），（２，１），…，（３，３），（３，４）を順次処理対象にして前述した処理を行う。上記した各要素（１，３）〜（３，４）の内、ＯＮが設定されている要素は（１，３），（１，４），（２，２），（２，３），（２，４），（３，４）であるので、組み合わせ「１−３」，「１−４」，「２−２」，「２−３」，「２−４」，「３−４」を出力することになる。
【００６１】
これにより、表示部１６には、組み合わせの一覧「１−１」，「１−２」，「１−３」，「１−４」，「２−２」，「２−３」，「２−４」，「３−４」が表示される。ここで、表示されている各組み合わせは、それに含まれている２個の関係が昇順になっており、重複するものは存在しない。また、組み合わせの並び順も昇順になっている。
【００６２】
〔第１の実施の形態の効果〕
本実施の形態によれば、２個の集合からそれぞれ１個ずつ数値を抽出することにより得られる組み合わせの一覧を生成する際、ソート処理や重複チェック処理を行うことなく、組み合わせの並び順および組み合わせ中の２つの数値の関係が昇順で、且つ重複する組み合わせが存在しない一覧を生成することが可能になる。その理由は、第１，第２の集合α，βからそれぞれ数値を１個ずつ抽出した組み合わせ毎に、その組み合わせ中の２個の数値とその大小関係とに基づいて二次元配列２５中の要素の内の１つを選択し、選択した要素をＯＮにする設定手段１４と、二次元配列２５の先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の二次元配列中の位置に応じた２つの数値の組み合わせを出力する組み合わせ出力手段１５とを備えているからである。
【００６３】
〔第２の実施の形態の構成〕
次に、本発明にかかる組み合わせ生成装置の第２の実施の形態について説明する。図４は本実施の形態にかかる組み合わせ生成装置１ａの構成例を示すブロック図であり、本実施の形態の組み合わせ生成装置１ａと、図１に示した第１の実施の形態の組み合わせ生成装置１との相違点は、二次元配列確保手段１３の代わりに一次元配列確保手段１３ａを備えている点、設定手段１４の代わりに設定手段１４ａを備えている点、および組み合わせ出力手段１５の代わりに組み合わせ出力手段１５ａを備えている点である。
【００６４】
一次元配列確保手段１３ａは、αmax×βmax個の要素からなる一次元配列２５ａをバッファ領域２４上に確保し、一次元配列２５ａの各要素にＯＦＦを設定する機能を有する。
【００６５】
設定手段１４ａは、集合記憶部２１，２２に格納されている集合α，βからそれぞれ数値を１個ずつ抽出した各組み合わせ毎に、その組み合わせ中の２個の数値と、その大小関係とに基づいて一次元配列２５ａの要素を１つ選択し、選択した要素にＯＮを設定する機能を有する。
【００６６】
組み合わせ出力手段１５ａは、一次元配列２５ａの先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の一次元配列２５ａ中の位置に応じた２つの数値の組み合わせを生成する機能や、生成した組み合わせを生成順に組み合わせ記憶部２６に格納したり、表示部１６に表示する機能を有する。
【００６７】
なお、本実施の形態の組み合わせ生成装置１ａもコンピュータによって実現可能であり、コンピュータによって実現する場合は、例えば、次のようにする。コンピュータを組み合わせ生成装置１ａとして機能させるためのプログラムを記録したディスク，半導体メモリ，その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に集合入力手段１１、最大値抽出手段１２、一次元配列確保手段１３ａ、設定手段１４ａおよび組み合わせ出力手段１５ａを実現する。
【００６８】
〔第２の実施の形態の動作〕
次に、本実施の形態の動作について詳細に説明する。
【００６９】
集合入力手段１１は、集合α，βが入力されると、図５のフローチャートに示すように、集合α，βをそれぞれ集合記憶部２１，２２に格納する（ステップＳ501）。
【００７０】
その後、最大値抽出手段１２が、集合α，βの最大値αmax，βmaxを抽出し、最大値記憶部２３に格納する（ステップＳ502，Ｓ503）。
【００７１】
一次元配列確保手段１３ａは、最大値記憶部２３から最大値αmax，βmaxを取り出し、その値に基づいてαmax×βmax個の要素からなる一次元配列２５ａをバッファ領域２４上に確保し、更に、一次元配列２５ａの各要素にＯＦＦを設定する（ステップＳ504，Ｓ505）。
【００７２】
設定手段１４ａは、一次元配列２５ａが確保されると、集合記憶部２１，２２に格納されている集合α，βからそれぞれ第１番目の数値を抽出し、抽出した数値をα１，β１とする（ステップＳ506〜Ｓ509）。その後、設定手段１４ａは、両者の大小関係を調べる（ステップＳ510）。
【００７３】
そして、α１≧β１の場合（ステップＳ510がYes）は、Ａ＝α１，Ｂ＝β１とし、一次元配列２５ａの、第｛（Ｂ−１）×Ｃ＋（Ａ−１）｝番目の要素にＯＮを設定する（ステップＳ511，Ｓ513）。これに対して、α１＜βの場合（ステップＳ510がNo）は、Ａ＝β１，Ｂ＝α１とし、一次元配列２５ａの、第｛（Ｂ−１）×Ｃ＋（Ａ−１）｝番目の要素にＯＮを設定する（ステップＳ512，Ｓ513）。なお、Ｃは、αmax，βmaxの内の小さくない方の値である。また、一次元配列２５ａの先頭の要素は、第０番目の要素となる。
【００７４】
その後、設定手段１４ａは、集合βから次の数値を取り出し（ステップＳ515，Ｓ509）、前述したステップＳ510〜Ｓ513の処理を行う。この処理を集合βの最後の数値まで行うと（ステップＳ514がYes）、設定手段１４ａは、集合βから先頭の数値を抽出すると共に集合αから次の数値を抽出し（ステップＳ516，Ｓ518，Ｓ508，Ｓ509）、前述したステップＳ510〜Ｓ515の処理を行う。この処理を集合αの最後の数値まで行うと（ステップＳ517がYes）、集合α，βからそれぞれ数値を１個ずつ抽出した全ての組み合わせについて、一次元配列２５ａの該当する要素にＯＮを設定する処理が終了したことになるので、設定手段１４ａは、組み合わせ出力手段１５ａを起動する。
【００７５】
これにより、組み合わせ出力手段１５ａは、カウント値Ｋを「０」とし（ステップＳ519）、一次元配列２５ａの第Ｋ番目（第０番目）の要素にＯＮが設定されているか否かを調べる（ステップＳ520）。
【００７６】
そして、ＯＮが設定されている場合（ステップＳ520がYes）は、数値１としてカウント値ＫをＣ（αmax，βmaxの内の小さくない方の値）で割ったときの商に１を加算した値を求め、数値２としてカウント値ＫをＣで割ったときの余りに１を加算した値を求め、組み合わせ「数値1−数値２」を表示部１６に表示すると共に、組み合わせ記憶部２６に格納する（ステップＳ521）。その後、組み合わせ出力手段１５ａは、カウント値Ｋを＋１した後（ステップＳ522）、前述したステップＳ520，Ｓ521の処理を行う。これに対して、ＯＦＦが設定されている場合（Ｓ520がNo）は、直ちにカウント値Ｋを＋１し（ステップＳ522）、その後、前述したステップＳ520，Ｓ521の処理を行う。
【００７７】
組み合わせ出力手段１５ａは、上記した処理を繰り返し行い、一次元配列２５ａの最後の要素に対する処理が完了すると（ステップＳ523がYes）、その処理を終了する。
【００７８】
次に、具体例を挙げて本実施の形態の動作について説明する。
【００７９】
今、例えば、集合入力手段１１に、集合α（１，２，４）と、集合β（１，２，３）が入力されたとする。
【００８０】
この例の場合、ステップＳ502，Ｓ503において最大値抽出手段１２が抽出する最大値αmax，βmaxは、それぞれ「４」，「３」となるので、一次元配列確保手段１３ａは、ステップＳ504においてαmax×βmax＝４×３＝１２個の要素からなる一次元配列２５ａをバッファ領域２４上に確保し、ステップＳ505において、図６（Ａ）に示すように、二次元配列２５ａの第０番目〜第１１番目の要素にＯＦＦを設定することになる。
【００８１】
その後、設定手段１４ａが、集合α，βから先頭の数値を抽出し、α１，β１とする（ステップＳ506〜Ｓ509）。この例の場合、α１＝β１＝１なので（ステップＳ510がYes）、設定手段１４ａは、図６（Ｂ）に示す示すように、一次元配列２５ａの第０番目の要素にＯＮを設定する（ステップＳ513）。
【００８２】
次いで、設定手段１４ａは、集合βから次の数値「２」を抽出し、それをβ１とする（ステップＳ515，Ｓ509）。この場合、α１＝１，β１＝２であり、α１＜β１であるので（ステップＳ510がNo）、設定手段１４ａは、図６（Ｃ）に示すように、一次元配列２５ａの第１番目の要素にＯＮを設定する（ステップＳ513）。
【００８３】
以上の処理をステップＳ517がYesとなるまで行うことにより、一次元配列２５ａの内容は図６（Ｄ）に示すものとなる。
【００８４】
設定手段１４ａの処理が終了すると、組み合わせ出力手段１５ａは、カウント値Ｋを「０」とし、一次元配列２５ａの第０番目の要素（Ｋ）＝（０）にＯＮが設定されているか否かを調べる（ステップＳ519，Ｓ520）。図６（Ｄ）を参照すると、要素（０）にはＯＮが設定されているので（ステップＳ520がYes）、組み合わせ出力手段１５ａは、組み合わせ「１−１」を表示部１６に出力すると共に、組み合わせ記憶部２６に格納する（ステップＳ521）。
【００８５】
その後、組み合わせ出力手段１５ａは、カウント値Ｋ＝「１」とし（ステップＳ522）、一次元配列２５ａの第1番目の要素（１）にＯＮが設定されているか否かを調べる（ステップＳ520）。この例の場合、図６（Ｄ）に示すように、要素（１）にはＯＮが設定されているので（ステップＳ520がYes）、組み合わせ「１−２」を出力する（ステップＳ221）。
【００８６】
以下、組み合わせ出力手段１５ａは、一次元配列２５ａの要素（２），（３），…，（１１）を順次処理対象にして前述した処理を行う。上記した各要素（２）〜（１１）の内、ＯＮが設定されている要素は（２），（３），（５），（６），（７），（１１）であるので、組み合わせ「１−３」，「１−４」，「２−２」，「２−３」，「２−４」，「３−４」を出力することになる。
【００８７】
これにより、表示部１６には、組み合わせの一覧「１−１」，「１−２」，「１−３」，「１−４」，「２−２」，「２−３」，「２−４」，「３−４」が表示される。ここで、表示されている各組み合わせは、それに含まれている２個の関係が昇順になっており、重複するものは存在しない。また、組み合わせの並び順も昇順になっている。
【００８８】
〔第２の実施の形態の効果〕
本実施の形態によれば、２個の集合からそれぞれ１個ずつ数値を抽出することにより得られる組み合わせの一覧を生成する際、ソート処理や重複チェック処理を行うことなく、組み合わせの並び順および組み合わせ中の２つの数値の関係が昇順で、且つ重複する組み合わせが存在しない一覧を生成することが可能になる。その理由は、第１，第２の集合α，βからそれぞれ数値を１個ずつ抽出した組み合わせ毎に、その組み合わせ中の２個の数値とその大小関係とに基づいて一次元配列２５ａ中の要素の内の１つを選択し、選択した要素をＯＮにする設定手段１４ａと、一次元配列２５ａの先頭の要素から順番にＯＮが設定されているか否かを判定し、ＯＮが設定されている要素については、その要素の一次元配列２５ａ中の位置に応じた２つの数値の組み合わせを出力する組み合わせ出力手段１５ａとを備えているからである。
【産業上の利用可能性】
【００８９】
本発明は、競馬などの複勝式の投票券をフォーメーションにより購入する場合などに適用できる。
【図面の簡単な説明】
【００９０】
【図１】本発明にかかる組み合わせ生成装置の第１の実施の形態の構成例を示すブロック図である。
【図２】組み合わせ生成装置１の処理例を示すフローチャートである。
【図３】二次元配列確保手段１３および設定手段１４の動作を説明するための図である。
【図４】本発明にかかる組み合わせ生成装置の第２の実施の形態の構成例を示すブロック図である。
【図５】組み合わせ生成装置１ａの処理例を示すフローチャートである。
【図６】一次元配列確保手段１３ａおよび設定手段１４ａの動作を説明するための図である。
【図７】２つの集合からそれぞれ数値を１個ずつ抽出して組み合わせの一覧を生成する際の、一般的に考えられる生成方法を示すフローチャートである。
【符号の説明】
【００９１】
１，１ａ…組み合わせ生成装置
１１…集合入力手段
１２…最大値抽出手段
１３…二次元配列確保手段
１３ａ…一次元配列確保手段
１４，１４ａ…設定手段
１５，１５ａ…組み合わせ出力手段
１６…表示部
２…記憶装置
２１…第１の集合記憶部
２２…第２の集合記憶部
２３…最大値記憶部
２４…バッファ領域
２５…二次元配列
２５ａ…一次元配列
２６…組み合わせ記憶部
【図１】
2006285827.tif 000003
【図２】
2006285827.tif 000004
【図３】
2006285827.tif 000005
【図４】
2006285827.tif 000006
【図５】
2006285827.tif 000007
【図６】
2006285827.tif 000008
【図７】
2006285827.tif 000009