13
NPを実行する:最大のクリークを見つける
バックグラウンド これを書いている時点で、NPの問題対Pは、まだ未解決のですが、聞いたことがあるかもしれませんノルベルト・ブルム社の新しい紙、すでにされてP!= NP、その主張を証明誤っていると疑われる(しかし、我々が表示されます)。 この論文で議論する問題はクリーク問題です。少なくとも新聞記事でそれを読んでいるので、間違っている場合は修正してください。しかし、いずれにしても、次のバリエーションを解決するプログラムを書いてほしいです。 タスク たくさんの生徒がいる大きな学校があると仮定します。これらの各生徒には、この学校に何人かの友人がいます。生徒のクリークは、お互いのメンバーと友達である生徒だけから成るグループです。 あなたのプログラムは、入力として友人である学生のペアを受け取ります。この情報から、プログラムは最大のクリークのサイズを見つけなければなりません。学生は整数IDで識別されます。 数学用語を好む場合、これは、それぞれが2つのノードで識別される無向グラフのエッジを与えられることを意味します。 入力 入力は、正の整数ペアの空でないリストになります(例:)[[1,2],[2,5],[1,5]]。この入力は、たとえば、配列の配列、それぞれ2つの数値を含むテキスト行など、適切な形式で入力できます。 出力 予想される出力はn >= 2、最大のクリークのサイズである単一の数値です。上記の入力例で3は、すべての生徒(1、2および5)が互いに友達であるため、結果はになります。 テストケース [[1,2]] => 2 [[1,2],[3,1],[3,4]] => 2 [[1,2],[2,5],[1,5]] => 3 [[2,5],[2,3],[4,17],[1,3],[7,13],[5,3],[4,3],[4,1],[1,5],[5,4]] => 4 (the largest clique is [1,3,4,5]) [[15,1073],[23,764],[23,1073],[12,47],[47,15],[1073,764]] => 3 (the largest clique is [23,764,1073]) [[1296,316],[1650,316],[1296,1650],[1296,52],[1650,711],[711,316],[1650,52], [52,711],[1296,711],[52,316],[52,1565],[1565,1296],[1565,316],[1650,1565], [1296,138],[1565,138],[1565,711],[138,1650],[711,138],[138,144],[144,1860], [1296,1860],[1860,52],[711,1639]] => 6 (the largest clique is …