タグ付けされた質問 「expression-building」

特定の式を満たすために一連の数学演算子または数値を再配置することについての課題。

2
数式の対決!
5つの数字[0-9]とターゲット番号の6つの数字が与えられます。あなたの目標は、数字の間に演算子を点在させて、ターゲットにできるだけ近づけることです。あなたは、各桁を使用する必要が正確に一度、そして次の演算子を使用することができ 、多くとしてあなたが好きな回:+ - * / () ^ sqrt sin cos tan。たとえば、与えられた場合、を8 2 4 7 2 65出力できます82-(2*7)-4。これは64と評価され、ターゲットから1離れていたため、スコアは1になります。注:数字の間に小数点を置くことはできません。 このStackOverflow回答のコードを使用して、数式を評価しています。この質問の一番下には、テストに使用できるプログラムがあります。 関数の連鎖(更新!) @mdahmouneは、この課題に対する新たなレベルの複雑さを明らかにしました。そのため、単項関数のチェーンという新しい機能を追加しています。これは、sin、cos、tan、およびsqrtで機能します。今書く代わりに書くsin(sin(sin(sin(10))))ことができますsin_4(10)。評価者で試してみてください! 入力 スペースで区切られた5桁の200行のテストケースとターゲット番号。質問の下部にあるプログラムを使用してサンプルのテストケースを作成できますが、公式の採点用に独自のテストケースを用意します。テストケースは、40個のテストの5つのセクションに分割され、ターゲット番号の範囲は次のとおりです。 セクション1:[0,1](小数点以下5桁まで) セクション2:[0,10](小数点以下4桁まで) セクション3:[0,1000](小数点以下3桁まで) セクション4:[0,10 6 ](小数点1桁まで) セクション5:[0,10 9 ](小数点以下0桁まで) 出力 200行で区切られた数式。たとえば、テストケースがの5 6 7 8 9 25.807場合、可能な出力は次のようになります。78-59+6 得点 各ラウンドの目標は、他の競合プログラムよりも目標数に近づくことです。私が使用するつもりだマリオカート8得点:あり、。複数の回答が同じ正確なスコアを取得した場合、ポイントは均等に分割され、最も近い整数に丸められます。たとえば、5位から8位のプログラムが同点の場合、各プログラムはそのラウンドで(8 + 7 + 6 + 5)/ 4 = 6.5 => 7ポイントを獲得します。200ラウンドの終了時に、最もポイントを獲得したプログラムが勝ちます。2つのプログラムが最後に同じ数のポイントを持っている場合、タイブレーカーはより速く実行を終了したプログラムです。1st: …

10
最少100オペレーション
概要 数字のリストが与えられたら、100にするための最も少ない操作を見つけます。 入力 数字の列。数字の順序である場合とない場合があります。数字の順序を変更することはできませんが、プラス(+)またはマイナス(-)演算子をそれぞれの間に追加して、合計が100になるようにすることができます。 出力 追加された演算子の数と、それに続く数字と演算子の完全なシーケンス。2つは、スペース、タブ、または改行で区切ることができます。 例 有効な 入力:123456789 出力:3 123–45–67+89 無効な 入力:123456789 出力:( 6 1+2+34-5+67-8+9 より少ない操作でこれを解決する方法があります)

2
最小限のマッチ棒で数学を作る
メタバックグラウンド これはPuzzlingの質問として設定されており、即座の反応は「まあ、誰かがそれをコンピューターで解決するだけです」でした。これを解決するプログラムがどれほど複雑であるかについての議論がありました。「このプログラムの複雑さ」はcode-golfの定義であるため、PPCGで問題を解決できるかもしれません。 バックグラウンド マッチ棒の方程式は、基本的に通常の数学的方程式であるが、数字や演算子は、テーブルの上にマッチ棒を配置することによって物理的に構築されます。(ここでのマッチスティックの主な関連機能は、かなり堅く、一定の長さを持っていることです。時々、綿棒など、他のオブジェクトを代わりに使用します。) このチャレンジでは、マッチスティックの配置方法に関する特定のルールを定義する必要はありません(リンクされたチャレンジのように)。むしろ、指定された数に評価される式を表すために必要なマッチスティックの数に注意するだけです。 タスク 使用できる数字のアルファベットと数学演算子は次のとおりです。それぞれにマッチスティックのコストがあります。 0、6本のマッチ棒 1、2本のマッチ棒 2、5本のマッチ棒 3、5本のマッチ棒 4、4本のマッチ棒 5、5本のマッチ棒 6、6本のマッチ棒 7、マッチ棒3本がかかる 8、7本のマッチ棒 9、6本のマッチ棒 +、2本のマッチ棒 -、マッチ棒1本 ×、2本のマッチ棒 (あなたは表すことができる×よう*必要に応じて、ほとんどのエンコーディングでは、非ASCII文字を使用する必要がないようにするために、あなたのプログラムの出力に×占める以上のバイト*、と私はほとんどのプログラムは、この余裕を利用したいということを想像して) (負の整数を入力として(任意の妥当な手段を介して)受け取り、その整数を出力として(再び任意の妥当な手段を介して)評価する式を生成するプログラムを作成する必要があります。また、式は自明である必要があります。それは、少なくとも一つのオペレータが含まれている必要があり+、-または×。最後に、出力する式は、そうでなければ仕様に準拠するすべての出力の中で、マッチ棒の総コストの観点から最も安価(または最も安価に結び付けられる)でなければなりません。 明確化 行に複数の数字を出力することで、複数の数字を作成できます(たとえば11-1、有効な出力です10)。正確に言うと、結果の数値は10進数で解釈されます。この種の連結は、中間結果に対して機能する操作ではありません。元の式に現れるリテラル数字のみ。 この課題のために。+、-と×中置演算子です。彼らは左と右への議論が必要です。+5またはのようなプレフィックス位置でそれらを使用することはできません-8。 括弧(または優先順位を制御する他の方法)がありません。式は、一般的なデフォルトの優先順位規則に従って評価されます(乗算が最初に発生し、次に加算と減算が左から右に評価されます)。 上記以外の数学演算子や定数にはアクセスできません。「ラテラル思考」ソリューションは、Puzzlingでしばしば受け入れられますが、コンピューターにそれ自体を考え出すことを要求することは意味がありません。PPCGでは、ソリューションが正しいかどうかを客観的にすることが望ましいです。 通常の整数オーバーフロールールが適用されます。ソリューションは、すべての整数がデフォルトで制限されていない仮想バージョン(または実際のバージョン)の任意の大きな整数で動作できる必要がありますが、実装によりプログラムが実際に失敗する場合それほど大きな整数をサポートしていなくても、ソリューションは無効になりません。 同じ数字または演算子を複数回使用する場合、使用するたびにマッチスティックコストを支払う必要があります(明らかに、テーブル上の2つの異なる場所で同じ物理的なマッチスティックを再利用できないためです)。 時間制限はありません。ブルートフォースソリューションは許容されます。(ブルートフォースよりも高速なソリューションがある場合は、それが長くても自由に投稿してください。代替アプローチがどのように比較されるかを見るのは常に興味深いです。) コードの説明を書く必要はありませんが、それは良い考えです。コードゴルフソリューションは、読むのが非常に難しい場合があります(特に、記述されている言語に精通していない人にとっては)、そしてその仕組みを理解しない限り、ソリューションを評価する(したがって投票する)のは難しい場合があります。 勝利条件 コードゴルフの挑戦として、より少ないバイトでの答えはより良いと考えられます。ただし、いつものように、さまざまなアプローチで回答を投稿したり、特定の言語で回答を投稿したりしても、特定の他の言語よりも冗長である場合があります。ゴルフの目標は、特定のプログラムを最適化できる範囲を実際に確認することであり、この方法で物事を行うと、最適化する多くの潜在的なプログラムが得られます。だから誰かが完全に異なるアプローチまたはまったく異なる言語を使用してソリューションを提出し、はるかに短い答えを得たとしても、落胆しないでください。あなたの答えがより最適化されており、より多くのスキルを示しているのかもしれません。PPCGの投票者はしばしばそれを高く評価しています。

3
スタックベースの言語をトークン化する
私は、に取り組んできた別のと呼ばれるスタックベースのゴルフの言語Stackgoat。この課題では、Stackgoat(または実際には一般的なスタックベースの言語)のTokenizerを作成します。 例 "PPCG"23+ ["PPCG", '23', '+'] 'a "bc" + ['"a"', '"bc"', '+'] 12 34+-"abc\"de'fg\\" ['12', '34', '+', '-', '"abc\"de'fg\\"'] "foo ['"foo"'] (empty input) [] ' "" ['" "', '""'] 仕様 処理する必要がある3つのタイプは次のとおりです。 ストリングス、何も内"" 数字、数字列 演算子、空白以外の任意の単一文字 空白は、文字列内にあるか、2つの数値を区切っていない限り、本質的に無視されます。 文字列/文字仕様: 文字列はで区切られ、が検出された"場合\、次の文字をエスケープする必要があります。 '文字はa で始まり、その後の'文字は文字列リテラルに変換されます。'a->"a" ' 常にその後に文字があります 終値を自動挿入する必要があります ルール: の形式evalは許可されません 入出力: 入力は、STDIN、関数パラメーター、または同等の言語を通じて取得できます。 出力は、配列または言語に最も近いものでなければなりません。
15 code-golf  parsing  code-golf  hexagonal-grid  code-golf  string  code-golf  string  code-golf  combinatorics  code-golf  ascii-art  code-golf  string  game  counting  code-golf  arithmetic  complex-numbers  code-golf  string  code-golf  decision-problem  hexagonal-grid  code-golf  string  sequence  code-golf  number  arithmetic  code-golf  ascii-art  code-golf  ascii-art  code-golf  string  arithmetic  code-golf  number  simulation  code-golf  number  arithmetic  code-golf  string  sequence  unicode  code-golf  string  ascii-art  balanced-string  code-golf  number  clock  code-golf  ascii-art  number  code-golf  math  number  sequence  code-golf  string  ascii-art  balanced-string  code-golf  math  string  popularity-contest  graphical-output  image-processing  code-golf  string  permutations  code-golf  string  code-golf  random  code-golf  string  cryptography  palindrome  code-golf  chess  code-golf  math  array-manipulation  topology  code-golf  math  sequence  code-golf  keyboard  classification  code-golf  string  sequence  code-golf  natural-language  code-golf  math  number  sequence  sorting  code-golf  sequence  combinatorics  grid  tic-tac-toe  code-golf  geometry  code-golf  number  restricted-source  new-years  expression-building 

1
算術…トック…ティック…トック
この質問は、長い電話会議で立ち往生しているときにプレイしたいゲームによってもたらされました。 24時間制(00:00から23:59)の任意の2つの時刻が与えられた場合、基本的な算術演算のみを使用して、その間のすべての時間で有効な数学方程式をいくつ生成できますか? 入力: 24時間サイクルの有効な時間を表す2つの4桁の文字列(コロンなし)。 例: input = 0000、1300の場合 03:26 produces: "0+3*2=6" and "03*2=6" etc. 11:10 produces quite a few, including: "1*1=1+0" and "1=1=1^0" and "1=11^0" etc. 12:24 produces: "1/2=2/4" and "1=(2*2)/4" etc. 有効な操作は次のとおりです。 添加 引き算 乗算 除算(浮動小数点) べき乗 階乗 その他の許可される記号 括弧 等号 最短のコードが優先されます。 ノート 目標は、有効な式を含む回数ではなく、2回の間の有効な式の数を見つけることです。 入力として指定された2つの時間は、時間の範囲に含まれます。 可能な任意の方法で数字をグループ化できます。そのため、「1223」は「12 23」、「1 2 23」、「1 …

11
大文字と小文字の一致検索
3つの入力、テキストの文字列T、置換する文字列、F; そして、それらを置き換える文字列R。Tと同じ(大文字と小文字を区別しない)文字を持つの各部分文字列について、の文字でF置き換えますR。ただし、元のテキストと同じ大文字小文字を使用してください。 より多くの文字が含まれているR場合F、余分な文字は大文字と小文字を区別する必要がありRます。に数字または記号がFある場合、対応する文字はRの大文字小文字を保持する必要がありRます。Fに表示されるとは限りませんT。 すべてのテキストが印刷可能なASCII範囲にあると想定できます。 例 "Text input", "text", "test" -> "Test input" "tHiS Is a PiEcE oF tExT", "is", "abcde" -> "tHaBcde Abcde a PiEcE oF tExT" "The birch canoe slid on the smooth planks", "o", " OH MY " -> "The birch can OH MY e slid OH MY …
14 code-golf  string  code-golf  string  ascii-art  alphabet  code-golf  number  sequence  counting  code-golf  sequence  counting  code-golf  quine  source-layout  code-golf  string  code-golf  decision-problem  game  code-golf  string  quine  source-layout  subsequence  code-golf  quine  code-golf  array-manipulation  integer  code-golf  ascii-art  code-golf  sequence  integer  code-golf  kolmogorov-complexity  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  integer  code-golf  string  number  integer  code-golf  string  ascii-art  code-challenge  test-battery  expression-building  source-layout  printable-ascii  code-bowling  code-golf  number  code-golf  number  string  binary  code-golf  matrix  conversion  code-golf  number  arithmetic 

8
0〜9と4つの操作のみで数値を表現する
説明 Befungeは、stacksを使用する2次元プログラムです。 つまり、5 + 6を行うには、と書く56+、という意味です。 56+ 5 push 5 into stack 6 push 6 into stack + pop the first two items in the stack and add them up, and push the result into stack (to those of you who do not know stacks, "push" just means add and "pop" …

4
数学をする時間です
前書き これは私のお気に入りの数学パズルの1つです。 数字(3など)とその数字を使用する回数(5など)を指定して、+のみを使用して1、2、3、4、5、6、7、8、9、10になる10個の式を生成します。 −、×、÷、^、および√(ルート)(グループは操作をグループ化できます)。 例えば: (3^3 + 3)/(3 + 3) = (33 - 3)/(3 + 3) = 3 + 3/3 + 3/3 = 5 上記のすべてが5つの3を使用し、数学演算と結果が5になることに注意してください。√の前に3を使用して、立方根を表すこともできます。4番目のルートを示すために、√の前に4を使用する場合も同様です。 また、2つの3を使用して33を形成したり、3つの3を使用して333を形成したりできることにも注意してください。 チャレンジ 関数の引数、STDIN、またはコマンドライン引数として2つの数字(両方とも1〜5)が与えられます。 最初の数字は使用する数字を示し、2番目の数字はその数字が式で使用される回数を示します。 プログラムは、サイズ10(またはスペースで区切られた10個の数値)の配列を出力する必要があります。各要素は、(index + 1)数値を生成する数式(許可演算子のみを使用)が可能かどうかを示します。 たとえば、入力が 1 3 次に、出力は [1, 1, 1, 0, 0, 0, 0, 0, 0, 1] なぜなら、1、2、3、および10のみが3つの1を使用して表現できるからです。 スコア これはコードゴルフなので、バイト単位の最小コード長が優先されます。 ボーナス …

4
ゲッターをゲット
タスク 私は誰もが自動コード生成と仕事中の時間の節約を愛していると思います。日中は多くのクラスとメンバーを作成するgetters必要があり、それらすべてを手動で作成する必要はありません。 タスクはgetters、すべてのクラスメンバーに対して自動的に生成されるプログラムまたは関数を作成することです。 入力 私たちの言語では、オブジェクトは非常に単純です。クラスおよびメンバーの名前は、文字から始まる必要[a-zA-Z]があり、文字のみを含めることができます[a-zA-Z0-9]。以下に例を示します。 class Stack { public overflow; protected trace; private errorReport; } 出力 これは、指定された例に基づいた有効な出力です。 class Stack { public overflow; protected trace; private errorReport; public function getOverflow() { return this->overflow; } public function getTrace() { return this->trace; } public function getErrorReport() { return this->errorReport; } } ゲッター getterメソッドの要件は次のとおりです。 …
13 code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

1
ツー・ゼロ・ワン・ファイブ・パズル
バックグラウンド このパズルは、フォーフォーズパズルのバリエーションです(それ自体が過去の質問のトピックです)。そのパズルのように、目的は、4桁と特定の数学演算子のみを使用して、異なる整数の数式を見つけることです。ただし、この場合、許可される数字は2、0、1、および5だけです。それぞれがソリューションに正確に1回、正しい順序で表示される必要があります。驚くほど多くの整数がこの方法で表現できます。ソルバーは、奇妙に楽しいので、最初に手で解決することをお勧めします。 ルール 定数は、1桁または複数の数字から作成できます。 整数:たとえば、2、0、15など。 10進数:例.2、.01、1.5など 繰り返しの小数:.2〜(= 0.222 ...)、. 15〜(= 0.1555 ...)、20.15 ~~(= 20.1515 ...) 次の単項演算が許可されています。 単項否定:-x 平方根:sqrt(x) 整数階乗:x! 次のバイナリ操作が許可されています。 標準算術演算子:x + y、xy、x * yおよびx / y 任意のべき乗:x ^ y 任意のルート:rt [x](y)(= xのyのルート) 仕事 プログラムは、できるだけ多くの0〜100の整数の式を出力し、生成した式の数を出力する必要があります。 ソリューションは、n = [expr]の形式で順番に印刷する必要があります。 式では、2、0、1、5のすべての数字をその順序で1つずつ使用する必要があります。 式は、上記の表記法を使用して印刷する必要があります。不要な括弧は許可されますが、空白のように必須ではありません。演算子の優先順位は、単項否定、階乗、べき乗、乗算/除算、加算/減算です。 プログラムは、すべての数値の解を返す必要はありません。したがって、単に0を出力するプログラムは有効です。ただし、以下のスコアリングセクションを参照してください。 プログラムは、最新のコンピューターで15分未満で実行する必要があります。 プログラムまたは関数を作成できます。式はSTDOUT(または最も近い代替)に出力する必要があります。式の数は、STDOUTに出力するか、整数として返すことができます。標準コードのゴルフ制限が適用されます。 出力例 0=2*0*1*5 10=20*1*.5 42=((2+0!)!+1)!/5! 100=20*1*5 4 得点 …

6
有理生成関数の係数を見つける
数値のシーケンスをべき級数の係数として記述する場合、そのべき級数はそのシーケンスの(通常の)生成関数(またはGf)と呼ばれます。つまり、ある関数F(x)と一連の整数a(n)について次のようになっている場合: a(0) + a(1)x + a(2)x^2 + a(3)x^3 + a(4)x^4 + ... = F(x) 次にF(x)はの生成関数ですa。たとえば、幾何級数は次のことを示しています。 1 + x + x^2 + x^3 + x^4 + ... = 1/(1-x) したがって、の生成関数は1, 1, 1, ...です1/(1-x)。上記の式の両側を微分して乗算するxと、次の等式が得られます。 x + 2x^2 + 3x^3 + 4x^4 + ... = x/(1-x)^2 したがって、の生成関数は1, 2, 3, ...ですx/(1-x)^2。関数の生成は非常に強力なツールであり、それらを使用して多くの便利なことができます。簡単な紹介はここにありますが、本当に徹底的な説明のために、素晴らしい本生成機能があります。 この課題では、入力として有理関数(整数係数を持つ2つの多項式の商)を、最初に分子、次に分母の2つの整数係数の配列として受け取ります。たとえば、関数f(x) = x …
12 code-golf  math  integer  polynomials  code-golf  math  abstract-algebra  restricted-time  code-golf  math  primes  code-golf  math  number  arithmetic  code-golf  quine  code-golf  number  sequence  code-golf  string  number  code-golf  array-manipulation  code-golf  number  code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

22
10 9 8 7 6 5 4 3 2 1…印刷2016
Puzzlingでの私の挑戦へのスピンオフとして、あなたの目標はを出力すること2016です。 ルール: 10 9 8 7 6 5 4 3 2 1その順序で番号を含める必要があります。彼らは、個々の整数として使用されるか、または(同様に一緒に連結することができる1098)が、10に分離しなくてもよい1し、0-何文字(単数または複数)の数字の間に存在しなくてもよいです。一部の言語で10は、実際には整数リテラルを表すとは限らないことに注意してください10。 コードには、他の数値や事前定義された数値変数や定数Tを含めることはできません(したがって、Pythでは数値定数であるため許可されません)。 数値を使用して計算 する必要があります2016。2016必要な数に対して操作を実行せずに(たとえば、アルファベット文字のみで構成されるエンコードされた文字列をデコードして)出力することは許可されていません。出力2016(例えば、小片に20その後、16また許可されていません)。数値で構成される単一の出力が必要です2016。 最小バイト数の有効な答えが勝ちです。

1
整数操作によりIEEE 754 64ビットのバイナリ浮動小数点数を実装します
(とりあえず質問「C」にタグを付けましたが、共用体をサポートする別の言語を知っている場合は、それも使用できます。) あなたの仕事は+ - * /、次の構造体の4つの標準的な数学演算子を作成することです。 union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 演算自体は整数部分のみを操作またはアクセスするため(演算中にdoubleと比較することはありません)、結果はまったく同じです(またはのような非数値の結果の場合は機能的に同等ですNaN)対応する数学演算がdouble代わりに直接適用されたかのように。 操作する整数部分を選択できます。おそらく、異なる演算子間で異なる部分を使用することもできます。(ユニオンのフィールドのいずれかから「unsigned」を削除することもできますが、それを実行するかどうかはわかりません。) スコアは、4つの演算子のそれぞれの文字のコードの長さの合計です。最低スコアが勝ちます。 IEEE 754規格に慣れていない私たちの人のために、ここではウィキペディアにそれについての記事です。 編集: 03-06 08:47 intfloat構造体にコンストラクタを追加しました。double /などを手動で設定するのではなく、テストに使用できます。

1
四つんばいパズルだけではありません
この変形例では四つの四つんばいパズルあなたまで使用してはならないx x's場合は0から100までのすべての番号に到達するために(および他の数)と操作の定義された一連x = 4その後、あなたは4つまで使用することができます4sし、この質問は、古典的な4つの4となりパズル(ただし、4つを正確に4つ使用するのではなく、4つまで使用できます)。と仮定し1 < x <= 9ます。 このバージョンでは、次の演算子のみが許可されます。 加算(+)、減算(-)、乗算(*)、除算(/)。これは実際の除算であることに注意してください5/2 = 2.5。 指数(例:4 ^ 4)。これは、通常手で書かれた場合、余分な記号を含まないためです。 を連結することにより、新しい整数を作成できますxs。たとえば、整数を作成できます4, 44, 444, 4444。 演算子の評価の順序を制御するためだけに、括弧を使用して番号をグループ化することもできます。たとえば、のように括弧を連結と組み合わせることはできません(4/4)(4/4) = (1)(1) = 11。 他の記号は使用できず、標準の操作順序が適用されます。 あなたのプログラムが与えられ、生成する必要がありますx定義された範囲内とnの間0と100、それが存在する場合は、包括その入力のための正しいソリューションを。それ以外の場合、コードは何かを出力して、そのような解決策が存在しないことを示す必要があります。 許容範囲内xおよびn許容範囲内の入力値に対して、マシン上で提出を完了できる必要があります。これはコードゴルフであるため、最短のソリューションが優先されます。 この古い関連する質問は、より多くの演算子(および4のみ)を使用するため、0〜100のすべての数値が解けるため、この課題には当てはまりません。 入出力 コードは入力として2つの整数xをn受け取り、人間が読める便利な形式でソリューション(またはソリューションがないことを示す)を出力する必要があります。入力は、4 6例えば、「数6を作り、4つの4Sまでの使用」を意味します。入力されたのであれば4 6出力は可能性があり(4+4)/4+4。

1
指定された数値のリストと算術演算子を使用して数値を生成します
あなたは番号のリスト与えられL = [17, 5, 9, 17, 59, 14]、オペレータのバッグO = {+:7, -:3, *:5, /:1}や数をN = 569。 仕事 L左側のすべての数値を使用Nし、右側の数値のみを使用する方程式を出力します。これが不可能な場合は、Falseを出力します。ソリューション例: 59*(17-5)-9*17+14 = 569 制限と明確化 数字を連結することはできません([13,37]として使用することはできません1337) には自然数とゼロのみが表示されLます。 順序は関係ありLません。 ですべての数字を使用する必要がありますL。 唯一の事業者は+、-、*、/で表示されますO。 O必要以上の演算子を持つことができますが、少なくとも|L|-1演算子 各演算子は、の値まで何度でも使用できますO。 の4つの演算はすべてO、標準の数学演算です。特に、/正確な分数を持つ通常の除算です。 ポイント ポイントが少ないほど良い コードのすべての文字が1ポイントを与えます 読みやすい非ゴルフバージョンを提供する必要があります。 バックグラウンド 同様の質問はスタックオーバーフローに頼まれました。面白いコードゴルフの挑戦かもしれないと思った。 計算の複雑さ ピーターテイラーがコメントで言ったように、これでサブセット和を解くことができます: サブセット合計のインスタンスがあります(したがって、整数のセットSと数値x) L:= S + [0、...、0](| S |回ゼロ)、N:= x、O:= {+:| S | -1、*:| S …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.