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

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

15
セミパリンドロームパズル
回文とは、それ自体が逆の言葉です。 今ではパリンドロームのように見えるかもしれないがそうではない単語がいくつかあります。たとえば、単語 はパリンドロームsheeshで sheeshはありません。その逆はhseehsどちらが異なるかを考えshてみましょう。しかし、単一の文字と考えると、逆はになりsheeshます。この種の単語をセミパリンドロームと呼びます。 具体的には、単語をいくつかのチャンクに分割して、チャンクの順序が逆になったときに元の単語が形成される場合、単語はセミパリンドロームです。(sheeshこれらのチャンクはsh e e sh)単語の両方の半分からの文字を含むチャンクも必要ありません(そうでない場合、すべての単語はセミパリンドロームになります)。たとえば、元の単語の両側の文字を含むチャンク()があるrearため、セミパリンドロームではありません。奇数の長さの単語の中心文字は単語のどちら側にもないと考えます。したがって、奇数の長さの単語の場合、中心文字は常に独自のチャンクになければなりません。r ea rea あなたの仕事は、正の整数のリストを取得し、それらがセミパリンドロームかどうかを判断することです。コードは、入力がセミパリンドロームの場合とそうでない場合の2つの一貫した等しくない値を出力する必要があります。ただし、コードのバイトシーケンスはセミパリンドロームそのものでなければなりません。 回答はバイト単位でスコアリングされ、バイト数が少ないほど優れています。 テストケース [] -> True [1] -> True [2,1,2] -> True [3,4,2,2,3,4] -> True [3,5,1,3,5] -> True [1,2,3,1] -> False [1,2,3,3,4,1] -> False [11,44,1,1] -> False [1,3,2,4,1,2,3] -> False より多くのテストケースを生成するプログラム。 恐ろしいことは、これらが一般化されたスマランダチェ回文に似ていることを指摘した。したがって、さらに読みたい場合は、1つの場所から始めてください。

10
自然ログのアリ
これは良い初心者の挑戦であり、良い時間のキラーです。 タイトルが短すぎたため、自然対数だけを言いました。これは対数とは関係ありません。 与えられた2つの変数: アリの数n。 ログの幅w。 幅のログwをnアリで出力します(例はw=3、n=6) | | | \O/ \O/ \O/ | | -O- -O- -O- | | /o\ /o\ /o\ | | ^ ^ ^ | | | | \O/ \O/ \O/ | | -O- -O- -O- | | /o\ /o\ /o\ | | ^ ^ ^ | …

30
最初に0ではなく、個別の数字でランダムなn桁の数字を取得します
私はこの質問を読み、それがいい挑戦になると思った。 仕事 入力0<n<10で乱数を生成する 正確にn桁 最初ではない 0 そう f(n)>10**(n-1)-1 個別の数字 受賞基準 これはコードゴルフなので、最短のコードが優先されます。 ランダム ランダムに均等に分散されるということです。そのため、プログラムの観点からは、考えられる各数字には同じチャンスがあります。あなたが書いている言語が奇妙な乱数ジェネレーターを持っているなら、それを使用しても大丈夫です。 例 ランダムに選択する値のリストn=2は次のとおりです。 [10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, …
22 code-golf  number  random  grid  game  king-of-the-hill  javascript  code-golf  arithmetic  statistics  code-golf  math  code-golf  math  code-golf  string  palindrome  code-golf  string  interactive  code-golf  quine  polyglot  code-golf  string  stack-exchange-api  code-golf  number-theory  decision-problem  code-golf  tips  code-golf  string  internet  code-golf  graphical-output  image-processing  fractal  code-golf  ascii-art  geometry  hexagonal-grid  code-golf  string  restricted-source  hello-world  code-golf  game  code-golf  cipher  code-golf  permutations  cops-and-robbers  permutations  cops-and-robbers  code-golf  internet  stack-exchange-api  code-golf  ascii-art  random  code-golf  tips  code-golf  ascii-art  code-golf  code-golf  kolmogorov-complexity  code-golf  string  unicode  code-golf  number  sequence  primes  palindrome  code-golf  game  decision-problem  code-golf  math  geometry  code-golf  graphical-output  interactive  code-golf  set-partitions  code-golf  number  arithmetic  restricted-source  code-golf  decision-problem  python  recursion  code-golf  ascii-art  code-golf  source-layout  code-golf  function  recursion  functional-programming  code-golf  game  combinatorics  permutations  code-golf  string  file-system  code-golf  string  hashing  code-golf  stack-exchange-api  code-golf  string  code-golf  math  number  arithmetic  polyglot 

7
半指数関数
半指数関数は、それ自体となるとき、指数関数を与えるものです。たとえば、の場合f(f(x)) = 2^x、f半指数関数になります。この課題では、特定の半指数関数を計算します。 具体的には、次のプロパティを使用して、非負の整数から非負の整数への関数を計算します。 単調増加:if x < y、thenf(x) < f(y) 少なくとも半指数:すべてのx場合、f(f(x)) >= 2^x 辞書式に最小:上記の特性を有する全ての機能のうち、出力最小化するf(0)という選択肢最小に与えられ、f(1)後f(2)など。 入力に対するこの関数の初期値0, 1, 2, ...は次のとおりです。 [1, 2, 3, 4, 8, 9, 10, 11, 16, 32, 64, 128, 129, 130, 131, 132, 256, 257, ...] この関数は、関数または完全なプログラムとして、次のいずれかの方法で出力できます。 乗りx入力、出力としてf(x)。 テイクx出力まず、入力としてxの値f。 すべてを無限に出力しますf。 を取得xして出力する場合はf(x)、xインデックスをゼロにする必要があります。 リファレンス実装 これはコードゴルフです-バイト単位の最短コードが勝ちます。いつものように、標準的な抜け穴は禁止されています。

18
指定された配列で最も近い数を見つける
これは、私が抱えていた現実の問題に触発されました。これについて賢明な方法があるかどうか見てみたい。 並べ替えられていない2つの配列AとBが与えられ、それぞれに任意の数のfloatが含まれています。AとBは必ずしも同じ長さではありません。Aの要素を順番に受け取り、配列Bで最も近い値を見つける関数を作成します。結果は新しい配列に含まれる必要があります。 勝利条件 最短のコードが勝ちます(通常どおり)。

13
カレーにして
引数x 1、x 2、…、x nをとる関数fを持つ –すなわち。 f:X 1 ×X 2 ×…×X n →Y – カリー化は、fを、さらに別の関数にマップする単一の引数a 1をとる関数として再定義します。このテクニックは、部分的に適用する場合に便利です。たとえば、カリー化したpow関数を使用して記述できますexp = pow(e)。 例 3つの引数(f:X 1 ×X 2 ×X 3 →Y)を取る次の関数fがあると仮定します。 def f(a,b,c): return a + b * c この関数をカリー化すると、f_curryが残ります:X 1 →(X 2 →(X 3 →Y))、その関数を2回呼び出すと、次と同等のf_curry(1)(2)関数(h)が返されます: def h(c): return 1 + 2 * c カリー化された関数fは次のように書くことができます(Python 3): …

9
リーマン和を使用した近似定積分
左右のリーマン和は定積分の近似です。もちろん、数学では非常に正確である必要があるため、無限に近づくいくつかの細分化で計算することを目指していますが、この課題の目的には必要ありません。代わりに、入力を取り、のいずれかを介して出力を提供し、最短プログラムを書くしようとする必要があり、デフォルトの方法いずれかで、プログラミング言語、次の処理を行い、: 仕事 2つの有理数および(定積分の限界)、正の整数、左/右を表すブール値およびブラックボックス関数与え、の左または右のリーマン和(依存)を計算します、等しいサブディビジョンを使用します。aaabbbnnnkkkF K ∫ B、F (X )D X N fffkkk∫baf(x )d x∫abf(x)dx\int_a^b f(x)\mathrm{d}xnnn I / O仕様 aaaおよびは、有理数/浮動小数点数または小数にすることができます。 bbb kkkは2つの異なる一貫した値で表すことができますが、入力として完全または部分的な関数を使用することは許可されていないことに注意してください。 fffはブラックボックス関数です。上記のメタ回答を引用すると、ブラックボックス関数のコンテンツ(コードなど)にアクセスできず、それらを呼び出し(該当する場合は引数を渡す)、出力を観察することしかできません。必要に応じて、提出をテストできるように、言語で使用する構文に関する必要な情報を含めてください。 出力として、要求されたリーマン和を表す有理数/浮動小数点数/分数を提供する必要があります。過去に検討し、浮動小数点の不正確さがある限り1000分の1の最も近い倍数に丸めたときに、あなたの出力は、少なくとも3桁まで正確であると(例えば、無視することができる1.4529999のではなく、結構です1.453)。 数学仕様 fffはと間で連続することが保証されています(ジャンプ、穴、垂直漸近線はありません)。aaabbb 対処しなければならない3つのケースがあります:(結果はまたは同等のもの)、またはです。a = ba=ba = b000a &lt; ba&lt;ba < ba &gt; ba&gt;ba > b 場合、積分はその符号を変えます。また、この場合の積分の正しい意味はに向かっます。b &lt; ab&lt;ab < aaaa グラフの下の領域は負で、グラフの上の領域は正です。 例/テストケース 私はそれらを少し縮小しなければならなかったので、解像度は最適ではありませんが、それらはまだ読みやすいです。 f(x )= 2 x + …

25
増分ベッティング
数ヶ月前、私はインタビューのための事前スクリーニングのパズルとしてこの質問をしました。最近、ブログの素材について考えると、問題を機能的に解決するための良い例として頭に浮かびました。ブログ投稿を書き終えたらすぐに、これに対する解決策を投稿します。 注:この質問は1年前にStackOverflowで尋ねられたもので、いくつかの(誤った)回答の後に採択されました。明らかなインタビューや宿題の質問であると断定されたと思います。ここでの答えは、誰かがそれらを使用することを考えないように、十分に深くコード化されるべきです! レースでは、次の戦略を使用して賭けます。ベットを失うたびに、次のラウンドのベットの値を2倍にします。勝つたびに、次のラウンドの賭け金は1ドルになります。1ドルを賭けてラウンドを開始します。 たとえば、20ドルで開始し、最初のラウンドで賭けに勝ち、次の2つのラウンドで賭けを失い、4番目のラウンドで賭けに勝った場合、20 + 1-1-2になります。 +4 = 22ドル。 次のg2つの引数を取る関数を完了することが期待されています。 最初の引数は整数aで、これは賭けを開始するときに持っている最初のお金です。 2番目の引数は文字列rです。結果のi番目の文字は、i番目のラウンドの結果を示す 'W'(勝ち)または 'L'(負け)のいずれかになります。 あなたの関数は、すべてのラウンドがプレイされた後に持っているお金の量を返す必要があります。 ある時点で、ベットの価値をカバーするのに十分なお金がアカウントにない場合、その時点で持っている合計額を停止して返さなければなりません。 サンプル実行 1st round - Loss: 15-1 = 14 2nd round - Loss: 14-2 = 12 (Bet doubles) 3rd round - Loss: 12-4 = 8 4th round - Win: 8 + 8 = 16 5th …

12
空白を埋める
文字列に特定の関数セットがあるとしましょう。これらの関数は、空白またはmadlibを埋めるようなものですが、入力が1つだけで、それを使用してすべての空白を埋めることが異なります。たとえば、次のような関数があるとします I went to the ____ store and bought ____ today. この関数を文字列に適用cheeseすると、結果は次のようになります。 I went to the cheese store and bought cheese today. これらの関数は、空ではない文字列のリストとして表すことができます。ここで、空白は単に文字列間のギャップです。たとえば、上記の関数は次のようになります。 ["I went to the ", " store and bought ", " today."] この表現では、この種のすべての関数に対して1つの表現しかなく、各表現に対して1つの関数しかありません。 本当にすてきなことは、そのような関数のセットが合成中に閉じられることです。つまり、2つの関数の構成は、常にこれらの関数の別の1つです。たとえば、上記の関数を ["blue ", ""] (blue入力の先頭に追加する関数)関数を取得します: ["I went to the blue ", " store and …

7
ヒルベルトのバイナリーホテル
この課題では、2つの特性を満たす機能(または完全なプログラム)を実装するよう求められます。これらのプロパティは次のとおりです。 関数は、非負の整数に対する非負の整数係数を持つ多項式からの単射(可逆)関数でなければなりません。これは、2つの等しくない入力が等しい出力にマップできないことを意味します。 関数は、入力から出力までの「オンビット」の総数を保持する必要があります。つまり、多項式の各係数の1ビットをカウントする場合、それらの合計は出力のバイナリ表現の1ビットの数と同じでなければなりません。例えば9ある1001ことが2つの持つようにバイナリ1ビット。 IO 非負の整数多項式は、特定のポイントの後、すべての整数がゼロになるような非負の整数の無限リストと同じです。したがって、多項式は、無限リスト(おそらく望ましくありませんが)またはリストの末尾の後に暗黙のゼロを持つ有限リストのいずれかで表されます。 多項式と有限リストの主な違いは、リストの末尾にゼロを追加するとリストが変更されることです。 多項式の最後にゼロを追加しても、その値は変わりません: したがって、関数が入力として多項式を表す有限リストをとる場合、ゼロを追加しても結果が変わらないようにする必要があります。 多項式をリストとして表す場合、定数項を表す最初または最後のエントリでそれらを表すことができます。たとえば、次のいずれかの可能性があります。 最初のケースでは、リストの最後にゼロを追加しても結果は変わりません。2番目の場合、リストの先頭にゼロを追加しても結果は変わりません。 もちろん、言語が多項式をサポートしている場合、それらを入力として使用できます。 出力は、任意の標準的な方法による非負の整数出力でなければなりません。 これはコードゴルフであるため、回答はバイト単位でスコアリングされ、バイト数は少ない方が良いでしょう。

4
実用的な数値を計算する
定義 正の整数nは、すべてのより小さい正の整数がの別個の約数の合計として表される場合に限り、実用的な数値(OEISシーケンスA005153)ですn。 たとえば18、実用的な数値です。除数は1、2、3、6、9、18であり、18より小さい他の正の整数は次のように形成できます。 4 = 1 + 3 5 = 2 + 3 7 = 1 + 6 8 = 2 + 6 10 = 1 + 9 11 = 2 + 9 12 = 3 + 9 = 1 + 2 + 9 = 1 + 2 + 3 …
18 code-golf  sequence  number-theory  code-golf  code-challenge  sorting  c  code-golf  restricted-source  code-golf  natural-language  code-golf  tree-traversal  file-system  popularity-contest  pi  polyglot  code-golf  game  sliding-puzzle  code-golf  game  minesweeper  code-challenge  ascii-art  code-challenge  popularity-contest  graphical-output  code-challenge  popularity-contest  hello-world  underhanded  obfuscation  code-golf  code-golf  function  code-golf  code-golf  code-golf  popularity-contest  rosetta-stone  code-golf  primes  code-golf  restricted-source  popularity-contest  number  sequence  code-golf  restricted-source  popularity-contest  graphical-output  code-golf  popularity-contest  code-golf  primes  code-golf  game  code-golf  math  popularity-contest  popularity-contest  code-generation  popularity-contest  code-bowling  code-golf  popularity-contest  underhanded  code-golf  metagolf 

15
任意の(制限された)無限集合とその順序付けられていないペアの間の可換単射関数を設計する
関連するが、これは正の整数のみを必要とし、可換である必要はない Cantorペアリング関数は、このウィキペディアの記事で説明されています。基本的に、2つの値XとYに適用されると、結果が与えられて元の値XとYを取得できるような操作です。 あなたの仕事は、実行する機能と実行する機能の2つの機能を設計X, Y -&gt; ZすることZ -&gt; X, Yです。キャッチは次のとおりX, Y -&gt; Zです。可換でなければなりません。これはZ -&gt; X, Y、入力がX, Yまたはであったかどうかを判断できないことを意味しますY, X。 この課題の正式な定義は次のとおりです。 カウント可能な数の無限集合Sを選択します。 次のタスクを実行する2つの関数を設計します。 Sの値の順序付けられていないペアを指定すると、Sの値を返します 初期関数からの戻り値を指定すると、最初の関数を通過したときに入力整数に評価される値の順序付けられていないペアを返します。入力が最初の関数からの戻り値でない場合、この逆関数の動作は気にしません。 必要条件 結果は実行間で同一である必要があります。 {a, a} 順不同のペアです 注:証拠を提供すると、あなたの答えは私から賛成票を受け取る可能性が高くなりますが、答えが得られたらテストし、それがうまくいくと確信したら票決します。

30
消える要素
文字列Sとインデックスのリストを指定すると、その結果をの新しい値として使用しながら、の各インデックスの要素を削除してX変更SしSますS。 例えば、与えられたS = 'codegolf'とX = [1, 4, 4, 0, 2]、 0 1 2 3 4 5 6 7 | c o d e g o l f | Remove 1 c d e g o l f | Remove 4 c d e g l f | Remove 4 c …
17 code-golf  string  array-manipulation  code-golf  string  ascii-art  code-golf  number  sequence  pi  code-golf  number  array-manipulation  code-golf  string  ascii-art  code-golf  math  number  game  code-golf  math  sequence  polynomials  recursion  code-golf  math  number  sequence  number-theory  code-golf  permutations  balanced-string  code-golf  string  ascii-art  integer  code-golf  decision-problem  hexagonal-grid  code-golf  ascii-art  kolmogorov-complexity  code-golf  number  code-golf  matrix  binary-matrix  code-golf  math  statistics  code-golf  string  polyglot  code-golf  random  lost  code-golf  date  path-finding  code-golf  string  code-golf  math  number  arithmetic  number-theory  code-golf  tetris  binary-matrix  code-golf  array-manipulation  sorting  code-golf  number  code-golf  array-manipulation  rubiks-cube  cubically  code-golf  grid  optimization  code-golf  math  function  code-golf  string  quine  code-golf  ascii-art  grid  code-golf  decision-problem  grid  simulation  code-golf  math  sequence  code-golf  path-finding  code-golf  ascii-art  grid  simulation  code-golf  number  whitespace  code-golf  sequence  code-golf  sequence  code-golf  sequence  integer  code-golf  math  game  code-golf  internet  stack-exchange-api  code-golf  sequence  code-golf  internet  stack-exchange-api  code-golf  math  factoring  code-challenge  sequence  polyglot  rosetta-stone  code-golf  string  browser  code-golf  date  code-golf  base-conversion  code-challenge  cops-and-robbers  hello-world  code-golf  cops-and-robbers  hello-world 

14
任意の長さのハッシュ
あなたが持って考えてみましょうハッシュ関数 HH\mathcal{H}の長さの文字列を取る2n2n2nの長さの戻り文字列nnn、それがあることを素敵なプロパティがある耐衝突、すなわち、見つけるのは難しいです二つの異なる文字列s≠s′s≠s′s \neq s'同じハッシュを持つH(s)=H(s′)H(s)=H(s′)\mathcal{H}(s) = \mathcal{H}(s')。 ここで、任意の長さの文字列を取得し、それらを長さnの文字列にマッピングする新しいハッシュ関数H′H′\mathcal{H'}を作成します。nnn 幸運なことに、すでに1979年に、Merkle–Damgård構造として知られる方法が公開されました。 この課題の課題は、このアルゴリズムを実装することです。そのため、アプローチがより簡単であることを示すステップバイステップの例に進む前に、最初にマークル・ダムガード構造の形式的な説明を見ていきます。最初に表示される場合があります。 いくつかの整数n&gt;0n&gt;0n > 0、上記のハッシュ関数HH\mathcal{H}および任意の長さsss入力文字列sが与えられると、新しいハッシュ関数H′H′\mathcal{H'}は次のことを行います。 設定l=|s|l=|s| l = |s|、sssの長さ、および長さnのチャンクにsssを分割し、必要に応じて最後のチャンクを末尾のゼロで埋めます。この収率は、mは= ⌈ Lnnnm=⌈ln⌉m=⌈ln⌉m = \lceil \frac{l}{n} \rceil 標識されている多くのチャンクc1,c2,…,cmc1,c2,…,cmc_1, c_2, \dots, c_m 。 リーディングを追加して、後続チャンクc0c0c_0とcm+1cm+1c_{m+1}、ここで、c0c0c_0からなる文字列であり、nnnゼロとcm+1cm+1c_{m+1}であり、nnnバイナリで、で埋め主要長さにゼロnnn。 今反復適用HH\mathcal{H}現在のチャンクにcicic_i、前の結果に添付ri−1ri−1r_{i-1}:ri=H(ri−1ci)ri=H(ri−1ci) r_i = \mathcal{H}(r_{i-1}c_i)、r0=c0r0=c0r_0 = c_0。(このステップは、以下の例を見るとより明確になるかもしれません。) H ′の出力H′H′\mathcal{H'}は、最終結果rm+1rm+1r_{m+1}です。 タスク 入力として正の整数かかるプログラムや関数書き込みnnn、ハッシュ関数HH\mathcal{H}としてブラックボックスおよび空でない文字列sss、H 'と同じ結果を返すH′H′\mathcal{H'}、同じ入力で。 これはcode-golfであるため、各言語の最短の回答が優先されます。 例 レッツ・発言n=5n=5n = 5、そう私たちの与えられたハッシュ関数HH\mathcal{H}長さ5の長さ10とリターンの文字列の文字列を取ります。 入力所与s="Programming Puzzles"s="Programming Puzzles"s = \texttt{"Programming Puzzles"} …

4
ポイントフリーでのタプル追加
関数を表現できる最短の方法は何ですか f(a,b)(c,d)=(a+c,b+d) ポイントフリー表記で? pointfree.ioは私たちに与えます uncurry (flip flip snd . (ap .) . flip flip fst . ((.) .) . (. (+)) . flip . (((.) . (,)) .) . (+)) 少しの作業で短縮できます uncurry$(`flip`snd).((&lt;*&gt;).).(`flip`fst).((.).).(.(+)).flip.(((.).(,)).).(+) 76バイト。しかし、これは、そのような単純なタスクにとっては依然として非常に長く複雑です。ペアワイズ加算をより短いポイントフリー関数として表現する方法はありますか? 関数のポイントフリー宣言の意味を明確にするために、関数のポイントフリー宣言には、既存の関数と演算子を使用し、目的の関数が作成されるようにそれらを相互に適用することが含まれます。バッククォート、括弧やリテラル値([]、0、[1..3]、など)が許可されますが、キーワードは次のようにしているwhereとletはありません。これの意味は: 変数/関数を割り当てることはできません ラムダは使用できません インポートできません これは、CMCであったときの同じ質問です

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