アルゴリズム思想の列挙法


列挙法の基本思想
  • 帰納推理を行う際、ある種の事件のすべての可能性を一つ一つ考察して一般的な結論を出すと、この結論は信頼でき、この帰納方法を列挙法(貧挙法)と呼ぶ.
  • 列挙法の核心思想はすべての可能性を列挙することであり、その本質はすべての可能な候補答えの中で問題の可能な解を検索することである.列挙法を使用すると、(1) (2) という2つの条件を満たす必要があります.
  • 列挙法の構造は、通常、 + である.

  • 列挙法の長所と短所
    メリット
  • アルゴリズムは簡単で、局所的に列挙法を使用して、効果は非常に良いです.
  • で得られた結果は正しいに違いない.

  • 欠点
  • は多くの無駄なことをした可能性があり、貴重な時間を浪費し、効率が低下した.
  • の演算量が大きすぎて、問題の規模が大きくなると、サイクルの次数が大きくなるほど、実行速度が遅くなります.

  • 列挙法を応用する基本構想
    step1.       、         ;
    step2.       ,         。
    

    列挙の例
    100元で鶏を買う問題
    [問題の説明]鶏翁一、価値五;鶏母一、値打ち三;雛三、値打ち一;百元で百鶏を買うと、翁、母、雛はそれぞれ幾何学ですか.[考え方解析]雄鶏x x匹、雌鶏y y匹、ニワトリz z匹を買うと、方程式x+y+z=100、5 x+3 y+z/3=100 x+y+z=100、5 x+z/3=100 x+y+z=100、5 x+3 y+z/3=100 x+y+z=100、5 x+3 y+z/3=100
    '''
          
        ,   ;   ,   ;   ,   ;     ,  、 、    ?
    '''
    
    def enum():
        res = []
        for x in range(1, 101):
            for y in range(1, 101):
                for z in range(3,101,3):
                    if x*5 + y*3 + z/3 == 100 and x + y + z == 100:
                        res.append([x,y,z])
        return res
    
    res = enum()
    for each in res:
        print(f'   {each[0]} ,  {each[1]} ,  {each[2]} ')
    

    [結果]雄鶏4羽、雌鶏18羽、ひよこ78羽雄鶏8羽、雌鶏11羽、ひよこ81羽雄鶏12羽、雌鶏4羽、ひよこ84羽