quintopiaは、ここで多項係数を計算するための課題を投稿しました(ここのテキストの一部はそこからコピーされています)。多項係数mod 2を計算する楽しいアルゴリズムがあります。
数のリストk 1、k 2、...、k mが与えられると、多項係数の剰余を出力します。
それぞれについて、以下のアルゴリズムが効率的にこれを行うMOD 2を減少K iがバイナリ拡張計算し、kはiが発見であること、IJ各ようにijが 1または0であり、そして
r≠sに対してa rj = a sj = 1のようなjがある場合、関連するmod 2多項係数は0です。それ以外の場合、mod 2多項係数は1です。
仕事
m個の数値、k 1、k 2、...、k mを取り、対応する多項係数を出力または返すプログラムまたは関数を作成します。プログラムでは、必要に応じて、オプションでmを追加の引数として使用できます。
これらの数値は、コード化プロセスではなくコードによって多項係数の実際の計算が実行される限り、任意の形式で入力できます。たとえば、リストにグループ化するか、単項でエンコードするなどです。
多項係数が奇数の場合、出力は任意の真理値、多項係数が偶数の場合は偽値となります。
多項係数を計算するために設計された組み込み関数は使用できません。
標準の抜け穴が適用されます。
得点
これはコードゴルフです。バイト単位の最短ソリューションが勝ちです。
例:
7、16、および1000の多項係数を見つけるために、それぞれをバイナリ展開します。
1つ以上の列を持つ列はないので、多項係数は奇数であり、したがって、何らかの真実を出力する必要があります。
7、16、および76の多項係数を見つけるために、それぞれをバイナリ展開します。
76と7の2進展開には4があるため、多項係数は偶数であり、偽値を出力します。
テストケース:
Input: [2, 0, 1]
Output: Truthy
Input: [5,4,3,2,1]
Output: Falsey
Input: [1,2,4,8,16]
Output: Truthy
Input: [7,16,76]
Output: Falsey
Input: [7,16,1000]
Output: Truthy
Input: [545, 1044, 266, 2240]
Output: Truthy
Input: [1282, 2068, 137, 584]
Output: Falsey
Input: [274728976, 546308480, 67272744, 135004166, 16790592, 33636865]
Output: Truthy
Input: [134285315, 33849872, 553780288, 544928, 4202764, 345243648]
Output: Falsey
==
真理と偽を反転させることが許されていれば、平等のためのいくつかの言語がバイトを節約できたと思います。