タグ付けされた質問 「function」

機能を要求する、または何らかの方法で機能を含む課題。(メソッドまたはサブルーチンとも呼ばれます。)

30
呼び出さずにメソッドを呼び出す[終了]
削除されたStackOverflowの質問に触発されました。明示的に呼び出すことなく、特定のメソッドを実行する方法を思いつくことができますか?間接的であればあるほど良い。 正確に言うと、次のとおりです(Cは例証のためだけに使用され、すべての言語が受け入れられます)。 // Call this. void the_function(void) { printf("Hi there!\n"); } int main(int argc, char** argv) { the_function(); // NO! Bad! This is a direct call. return 0; } 元の質問:

30
任意の長さのカレー
機能、書くf正の整数に取り、関数を返します、。 返される新しい関数はと同一である必要がありますf。ただし、「終了呼び出し」が発生した場合、f代わりに渡されたすべての整数の合計を返す必要があります。 たとえば、g=f(4)(f最初の関数の場合)g別の関数に設定する必要があります。h=g(3)同じことをします。ただし、h引数なしで呼び出した場合(詳細については以下を参照)、7を出力する必要があります。これは前の関数引数の合計であるためです。別の言い方をすればf(3)(4)() == 7。 これはと同じではないことに注意してくださいf(3,4)()。 「終了コール」は、次のオプションのいずれかです(選択)。 引数なしで呼び出す 引数としてnull 非正の値 任意の量の関数呼び出しをサポートする必要があります。事前に定義された制限はありません。 合計が1'000を超えないことが保証されています。 「終了呼び出し」の前に少なくとも1つの呼び出しが行われていると想定できます。 コードでは静的なプログラムごとの変数を使用しないでください。そのため、同じランタイムで実験を複数回実行し、まったく同じ動作を観察できるようにする必要があります。 例: f(1)() == 1 f(4)(2)(7)() == 13 f(4)(2)(7)(5)(2)() == 20

22
なんて奇妙な機能
ここでのタスクは、正の整数の順列(正の整数から自身への全単射)を形成する関数1を実装することです。これは、各正の整数が順列で1回だけ現れることを意味します。キャッチは、関数が偶数よりも奇数を出力する確率が大きいことです。 今、これは奇妙または不可能に見えるかもしれません。確かに偶数と同じくらい多くの奇数がありますか?そして、この直観は有限集合に対しては正しいが、実際には無限集合に対しては成り立たない。たとえば、次の順列を取ります。 1 3 2 5 7 4 9 11 6 13 15 8 17 19 10 21 23 12 25 27 14 29 31 16 33 35 18 37 39 20 41 43 22 45 47 24 49 51 26 53 55 ... サイズがを超えるシーケンスのサブセクションを使用すると、少なくとも偶数と同じ数の奇数があります。したがって、ランダム項が奇数である確率は偶数である確率よりも大きいようです。また、すべての数字の奇数または偶数が最終的にシーケンスに表示され、一度しか表示できないことに注意してください。したがって、シーケンスは真の順列です。111 確率の定義 混乱やあいまいさを避けるために、この質問で確率が意味するものを明確に説明します。 関数があるとしましょう。数の確率は、奇数セットのサイズに設定さの比奇数メンバーの限界として定義されているとして無限大に向かう傾向があります。ffff{ 1 …

30
すべての非ゼロ整数nに対してf(f(n))= -nとなるような関数fを定義します
この課題は、私が頻繁に使用するプログラミングブログに触発されました。ここで元の投稿を参照してください:プログラミングパズル チャレンジ すべての非ゼロ整数、およびが有理数のセットであるf:Q->Qような関数を定義します。f(f(n)) = -nnQ 詳細 あなたが好みの言語では、定義してください1つの機能やプログラムf、パラメータとして受け入れる1の数nを返すまたは出力1つの数をf(n)。 入力は、言語に最も自然なメカニズム(関数引数、STDINからの読み取り、コマンドライン引数、スタック位置、音声入力、ギャングサインなど)を通じて提供されます。 出力は、関数/プログラムからの戻り値、またはSTDOUTに出力される必要があります。 プログラムの状態や、関数の外部から見えるグローバルメモリ/データを利用しない関数への回答を制限したいと思いますf。たとえば、カウンターをfそのカウントの外にf置いて、何回呼び出されたかをカウントし、このカウントに基づいて否定を行うことは、誰にとってもそれほど難しくありません。決定fは、fの語彙範囲内のデータのみに依存する必要があります。 ただし、この制限は、一部のスタック指向言語またはこれらのタイプのデータまたはスコープを区別しない他のタイプの言語にはおそらく不適切です。この挑戦の精神を維持するために最善の判断をしてください。 得点 一般的なコードのゴルフ規則が適用されます。スコアはソースコードのバイト数です。 最小の答えは、ドメインと共同ドメインfが合理の部分集合であることを必要としますQ。あなたのドメインとの終域制限する場合はf整数にしZ、その後、あなたのスコアは、数の90%の天井であるバイトソースコードでは。 タイブレーク 同点の場合、以下が順番に使用されます。 ソースコードに含まれる印刷可能な非空白記号の数が最も少ない 回答提出の最も早い日時 編集 任意のサイズの数値をサポートする必要はありません。セットZをQ選択した言語のデータ型として解釈してください(通常、それぞれ整数と浮動小数点)。 ソリューションがデータ型の基礎となる構造またはビットパターンに完全に依存している場合、その制限とその使用方法を説明してください。

4
f(g(x))は減少し、g(f(x))は増加
この課題のために、f∘gは厳密に減少する関数であり、g∘fは厳密に増加する関数であるように、整数に2つの関数fとgを実装する必要があります。つまり、任意の2つの整数a <bを取る場合、f(g(a))> f(g(b))およびg(f(a))<g(f(b))となります。fとgに個別に制限はありませんが、それぞれが1つの整数を別の整数にマッピングする必要があることを除きます。 fとgの簡単な説明と、それらに必要なプロパティがある理由の引数を含めてください。 クレジット:この課題は、2011年のルーマニアの数学修士大会(整数ではなく実数で求められます)の問題に触発されました。ネタバレが本当に必要な場合は、何を検索すればよいかがわかります。 ルール この課題における「関数」という言葉は、1つの整数を別の整数にマッピングするという数学的な意味で解釈する必要があります。2つのプログラムまたは2つの関数を記述し、通常どおり入力を受け取り、出力を提供する標準的な方法を使用できます。実際の整数変数の代わりに整数の文字列表現を使用できますが、入力と出力のタイプは同一である必要があります。そのため、間にタイプを手動で変換することなく関数を構成できます。概念的には、fとgはまだonの関数である必要があるため、同じ数字またはそのようなものの2つの異なる文字列表現を使用して不正行為を行うことはできません。 ことを忘れないでください関数は無名のかもしれ彼らの名は、それ自体またはユーザーが定義する別の機能で必要とされていない限り、。関数の一方または両方に名前を付ける場合、それらが同じプログラムに存在すると仮定して、それらの実装(def f(x): return -g(x)Pythonなど)で相互に参照できるようにします。 通常の整数オーバーフロールールが適用されます。ソリューションは、すべての整数がデフォルトで制限されていない仮想バージョン(または実際のバージョン)の任意の大きな整数で動作できる必要がありますが、実装によりプログラムが実際に失敗する場合それほど大きな整数をサポートしていなくても、ソリューションは無効になりません。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 これはcode-golfであるため、スコアは両方の関数のバイト数の合計であり、最短の有効な回答が勝ちます。

30
この数値は-2の整数乗ですか?
数値が2のべき乗かどうかを判断する賢い方法があります。これはもはや興味深い問題ではないので、与えられた整数が-2の整数のべき乗かどうかを判断しましょう。例えば: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² ルール プログラムまたは関数を作成し、入力を受け取って出力を提供する標準的な方法を使用できます。 入力は単一の整数であり、整数が-2の整数乗である場合は出力が真実の値であり、それ以外の場合は偽の値である必要があります。他の出力(警告メッセージなど)は許可されません。 通常の整数オーバーフロールールが適用されます。ソリューションは、すべての整数がデフォルトで制限されていない仮想バージョン(または実際のバージョン)の任意の大きな整数で動作できる必要がありますが、実装によりプログラムが実際に失敗する場合それほど大きな整数をサポートしていなくても、ソリューションは無効になりません。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 勝利条件 これは、コードとゴルフのコンテストです。(選択したエンコーディングで)バイト数が最も少ない答えが勝者です。

22
Natural Pi#0-ロック
ゴール 入力を受け取るプログラム/関数を作成し、整数のランダムなペアが比較的素数であるNかどうかを確認しN、を返しますsqrt(6 * N / #coprime)。 TL; DR これらの課題は、Piを概算するために自然と脳(およびおそらく再利用可能なリソース)のみを必要とするアルゴリズムのシミュレーションです。ゾンビの黙示録中に本当にPiが必要な場合、これらの方法は弾薬を無駄にしません!さらに8つの課題があります。推奨事項を作成するには、サンドボックスの投稿をチェックしてください。 シミュレーション 何をシミュレートしていますか?さて、2つのランダムな整数が比較的素数(すなわち、コプライムまたはgcd == 1)である確率は6/Pi/Piです。それらを数える; gcdが1 かどうかを確認します。繰り返す。これを数回繰り返した後、sqrt(6.0 * total / num_coprimes)に向かう傾向がありPiます。黙示録的な世界で平方根を計算するのが不安になっても心配しないでください!そのためのニュートン法があります。 これをどのようにシミュレートしますか? 入力してください N 次のN時間を実行します。 ランダムな正の整数を均一に生成しi、j と 1 <= i , j <= 10^6 もしgcd(i , j) == 1:result = 1 その他: result = 0 N結果の合計を取り、S 戻る sqrt(6 * N / S) …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

30
すべての10進数が一意かどうかを判別
Stack Overflowで削除された質問は、素晴らしいゴルフ教材になる場合があります。 入力として非負の整数を取り、その数値の基数10表現のすべての数字が一意である場合にtrueを返す関数を作成します。例: 48778584 -> false 17308459 -> true 文字数には関数のみが含まれます。 CまたはC ++で回答することを選択した場合:マクロなし、未定義の動作なし。実装定義の動作とコンパイラの警告は問題ありません。

30
アッカーマン関数
アッカーマン関数は、原始再帰ではない、計算可能な合計関数の最も単純な例の1つであることで注目に値します。 A(m,n)2つの非負整数を取り込む定義を使用します。 A(0,n) = n+1 A(m,0) = A(m-1,1) A(m,n) = A(m-1,A(m,n-1)) 実装できます 入力として2つの整数を受け取り、整数を返す名前付き関数または匿名関数、または STDINで2つのスペースまたは改行で区切られた整数を取得し、結果をSTDOUTに出力するプログラム。 ライブラリのアッカーマン関数または超指数関数が存在する場合は使用できませんが、他のライブラリのその他の関数は使用できます。正規の累乗が許可されます。 関数は、A(m,n)m≤3およびn≤10の値を1分以内に検出できる必要があります。少なくとも理論的には、他の入力で終了する必要があります。無限のスタックスペース、ネイティブのBigint型、および任意の長い期間が与えられた場合、答えを返します。編集:言語の制限の深さがデフォルトの再帰の深さである場合は、文字コストなしで再設定できます。 最短の文字数での提出が勝ちです。 答えを確認するための値を次に示します。 A | n=0 1 2 3 4 5 6 7 8 9 10 -----+----------------------------------------------------------------- m=0 | 1 2 3 4 5 6 7 8 9 10 11 1 | 2 3 4 …

30
P Pr Pre Pref Prefi Prefix Prefixe Prefixes
いくつかの有限リストが与えられた場合、空のリストを含むすべてのプレフィックスのリストを長さの昇順で返します。 (基本的にHaskell関数を実装しますinits。) 詳細 入力リストには数字(またはより便利な場合は別のタイプ)が含まれます。 出力はリストのリストでなければなりません。 サブミッションは機能である必要はありますが、デフォルトのI / Oを使用できます。 すべての些細な解決策にCWの答えがあります。 例 [] -> [[]] [42] -> [[],[42]] [1,2,3,4] -> [[], [1], [1,2], [1,2,3], [1,2,3,4]] [4,3,2,1] -> [[], [4], [4,3], [4,3,2], [4,3,2,1]]

30
いくつの引数が渡されましたか?
選択した言語を使用して、可変数の引数を取り、呼び出された引数の数を返す関数を作成します。 詳細: あなたの言語は可変引数関数をサポートする必要があります:任意の数の引数を取り値を返す呼び出し可能なもの。 パラメータは個別に渡すことができる必要があります。これは、配列を渡すと1つのパラメーターしかカウントされないことを意味します。言語でサポートされている場合は、「すべての引数を渡す」配列を使用できます。関数の呼び出し方法に制限があります。 この関数を呼び出すコードは、ソース内の引数の数を渡す必要はありません。コンパイラーが呼び出し規約の一部として引数の数を挿入する場合、それは許可されます。 引数は任意のタイプにすることができます。サポートできるのは、単一のタイプ(たとえば、サポートのみint有効)、任意のタイプ(任意のタイプの引数が許可されます)、または任意の組み合わせの引数タイプ(たとえば、最初の引数がint、残りが文字列)です。 関数には最大数の引数がある場合があります(特にリソースが有限であるため)が、少なくとも2つの引数をサポートする必要があります。 サンプル: f() 返す 0 f(1)またはf("a")返す1 f([1, 2, 3])13つの引数ではなく配列が渡されたときに戻ります f(1, 10)またはf(1, "a")返す2 これはコードゴルフであるため、最も優れたソリューションは、使用するバイト数が最も少ないソリューションです。

15
ブラックボックス三角法
以下の12個の三角関数を区別できるプログラムや関数を書きます: sin、 cos、 tan、 asin、 acos、 atan、 sinh、 cosh、 tanh、 asinh、 acosh、 atanh。 プログラムには上記の関数のいずれかがブラックボックスとして与えられ、上記の関数名または言語での名前の付け方のいずれかで関数名を出力する必要があります。 これはcode-golfであるため、各言語で最も短い回答が優先されます。12個の入力すべてにテストケースを含めることで、コードが正しく機能することを示す必要があります。選択した言語に上記のすべての機能の組み込みが含まれていない場合は、欠落しているものの独自の賢明な実装を提供する必要があります。 さらなる説明 基礎となるビルドインが複素数を処理できる場合は、複素数を使用してブラックボックスを照会できます。 のみ実数を使用する場合、ブラックボックス機能へのクエリは、ドメインエラーを与えることができます。この場合、ブラックボックスはエラーの存在のみを伝え、エラーの発生元は伝えないと想定する必要があります。dO M A 、C 、O 、S 、H ∩ D o m a t a n h = ∅ dom acosh∩dom atanh=∅ dom\ acosh \cap dom\ atanh = \emptyset エラーの代わりに、他の値、たとえば、NaNまたはnullが返された場合、送信でそれらを処理できる必要があります。 有益なサンドボックスフィードバックをありがとう!

6
助けて!電卓が誤動作します!
前書き 電卓の動作がおかしい。入力するときにが8表示されることがあり2ます。そして時々私がタイプするとき6それは表示する+。いくつかのボタンが混同されています! 誰が私がどちらを決定するのを手伝ってもらえますか? チャレンジ: 入力:間違った方程式のリスト、正しい結果。 出力:交換される2つのボタン。 例: 入力は次のとおりです。 123 = 3 8423 = 252 4+4 = 8 4*7-10 = 417 9/3 = 3 42-9 = -36 そのために期待される出力は、次のとおり2と*。 どうして?2と*を入れ替えると、すべての方程式が正しいからです。 1*3 = 3 84*3 = 252 4+4 = 8 427-10 = 417 9/3 = 3 4*-9 = -36 チャレンジルール: 入力は任意の合理的な形式にすることができます。スペースで区切られた単一の文字列にすることができます。文字列リストまたは-array。方程式のリストと正しい結果の別のリスト。あなたの電話。使用した入力形式を明記してください! 注:これは-5--15、-5- -15またはとしてテストケースを入力できることも意味します-5 …
28 code-golf  number  arithmetic  integer  code-golf  math  number  geometry  code-golf  grid  code-golf  math  number  sequence  primes  code-golf  sequence  kolmogorov-complexity  code-golf  string  ascii-art  alphabet  code-golf  math  sequence  integer  code-golf  number-theory  integer  natural-language  code-golf  date  code-golf  function  code-golf  ascii-art  code-golf  math  number-theory  primes  classification  code-golf  array-manipulation  decision-problem  matrix  code-golf  number  code-golf  code-golf  ascii-art  matrix  code-golf  string  code-golf  sequence  base-conversion  code-golf  code-golf  math  number-theory  combinatorics  integer-partitions  code-golf  integer  binary  base-conversion  code-golf  integer  base-conversion  palindrome  code-golf  code-golf  integer-partitions  code-golf  math  ascii-art  matrix  code-golf  number  sequence  number-theory  matrix  code-golf  interpreter  code-golf  graph-theory  code-golf  ascii-art  decision-problem  code-golf  division  code-golf  array-manipulation  primes  code-golf  string  ascii-art  code-golf  primes  counting  code-golf  matrix  unicode  code-golf  source-layout  code-golf  grammars  code-golf  string  cops-and-robbers  regular-expression  obfuscation  string  code-challenge  cops-and-robbers  regular-expression  code-golf  kolmogorov-complexity  game  card-games  code-golf  kolmogorov-complexity  code-golf  array-manipulation  matrix  code-challenge  cops-and-robbers  code-challenge  decision-problem  cops-and-robbers  code-golf  permutations 

12
ワームの寿命
条項 ワームは、非負の整数のいずれかのリストであり、その右端の(すなわち、最後の)要素が呼ばれているヘッド。headが0でない場合、ワームは、headを含む要素の最も長い連続したブロックで構成されるアクティブなセグメントを持ち、すべての要素は少なくともheadと同じ大きさです。減少活性セグメントはたとえば1だけデクリメントヘッドとアクティブなセグメントであり、ワームが3 1 2 3 2アクティブなセグメントを有し2 3 2、縮小アクティブセグメントです2 3 1。 進化のルール ワームは、次のように段階的に進化します。 ステップt(= 1、2、3、...)で 、ヘッドが0の場合:ヘッドを削除する else:アクティブセグメントを、縮小されたアクティブセグメントのt + 1連結コピーで置き換える。 事実:ワームは最終的に空のリストに進化し、そのためのステップ数はワームの存続期間です。 (詳細はThe Worm Principle、LD Beklemishevの論文に記載されています。有限リストを意味する「リスト」、およびその最後の要素を意味する「頭」の使用法は、この論文から引用されています。リストの一般的な使用法は抽象データ型であり、通常headは最初の要素を意味します。) 例(括弧内のアクティブなセグメント) ワーム:0,1 step worm 0(1) 1 0 0 0 2 0 0 3 0 4 <- lifetime = 4 ワーム:1,0 step worm 1 0 1 (1) 2 …

13
どの行が削除されたかを知らせる関数を作成します
5行を含む関数を作成します。 関数をそのまま実行すると、0が返されます。 5行のいずれかを削除して関数を実行すると、削除された行がわかります(たとえば、最後の行を削除すると5が返されます)。 簡潔さ、斬新さ、優雅さはすべて考慮に値します。最も高い投票されたソリューション(妥当な時間の後)が勝ちます。

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