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

ソリューションの以前の呼び出しに依存する動作を伴う課題。

30
一度だけ実行されるコード
ゴール この課題の目標は、一度だけ実行されるコードを書くことです。これは基本的に、何らかの方法でプログラム、スクリプト、または環境に損害を与えることを意味します。システムを再起動すると、許可されたコードの再実行が許可されます。 得点 投票数。すべての前提条件を明確にリストする必要があります。再起動または停止を開始しただけの回答は失格となります。 グレッグヒューギルは半神であるための追加規則 ルートアクセスは許可されていません。 終了日 コンテストは2014年5月31日に終了します。 編集 このコンテストは人気コンテストに変更されました。

10
リトルチャンドラーは悲しい。彼を元気づけるために彼に雲を引きます
リトルチャンドラーは悲しい。彼を元気づけるために彼に雲を引きます。 注:クラウドを描画しても、実際に彼を元気づけることはありません。 円は、3組として定義できます。(x,y,r)ここxで、デカルト平面上の円のx位置、デカルト平面上の円yのy位置、およびr円の半径です。xそしてy負でもよいです。r常にポジティブです。入力は、スペースで区切られた3タプルの形式の円のリストです。例えば: 3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8 3,1,1手段「に中心点を有する円3,11つの半径を有する。3,2,1.5手段」に中心点を有する円3,21.5半径を有します。 入力のこれらの円をすべてグラフに描画すると、次のようになります(わかりやすくするためにグリッド線とラベルを含めましたが、これらは必須ではありません)。 すべての円が凝集していることに注目してください。つまり、それらはすべて互いに重なり合っており、1つの大きなグループを形成し、残りの部分から分離された小さな円のグループはありません。入力は凝集性が保証されています。 ここで、これらの円によって形成される「境界線」の周りを移動する線を描き、他の線は一切ないとします。これは、すべての円によって形成されるシルエットの境界線を描くようなものです。結果のクラウドは次のようになります。 そのため、このクラウドは、境界を形成する入力内の円の円弧のみを描画することで形成され、単一の形状になります。言い換えると、クラウドは、別の円内にないアークを描くことによって形成されます。プログラムは、上記で説明した形式で入力を受け取り、結果のクラウドを表示する画像を出力します。雲の全体的な形状は正確でなければなりませんが、スケール、色、線の太さ、頂点の見え方はあなた次第です。クラウドが表示されている必要があるため、「このプログラムは白い背景に白い雲を描画する」、「このプログラムは無限に小さなスケールで雲を描画する」、「このプログラムは0の雲を描画する」また、境界線の色は塗りつぶしまたは背景の色と異なる必要があることに注意してください。 もう一つの例。入力: 1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7 出力: クラウドに「穴」がある場合は、穴も描画する必要があります。入力: 0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4 出力: 重要なルールは次のとおりです。プログラムは境界を形成する線のみを描画する必要があります。つまり、単純に円を完全に描画してから、白い塗りでわずかに小さい円を描画することはできません。このメソッドはまだ境界を形成しない線を描画するため、後でそれらを覆うだけです。ルールの目的は、「円を描いてから、白い塗りで円をもう一度描く」実装、またはそれに類似したものを防ぐことでした。答えは、実際に描画する前に描画する場所を実際に計算することです。 これはコードゴルフであるため、最短の文字数が優先されます。

30
文字列の長さを追加する
チャレンジ: s文字a- z、A- Z、0-の文字列を指定すると9、の長さsをそれ自体に追加し、長さの追加の文字をの全長の一部としてカウントしsます。 入力: 任意の長さの文字列(空にすることもできます)。 出力: 同じ文字列ですが、長さが末尾に追加されます。長さを表す文字も長さの一部としてカウントする必要があります。追加する有効な長さが複数ある場合は、可能な限り短いものを選択してください(例については、テストケースを参照してください)。 テストケース: INPUT -> OUTPUT // Comment aaa -> aaa4 -> 1 // Empty string aaaaaaaa -> aaaaaaaa9 // aaaaaaaa10 would also normally be valid, but violates using the smallest number rule mentioned above aaaaaaaaa -> aaaaaaaaa11 a1 -> a13 // Input can …
51 code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

30
再起動後も文字列を保持するための言語の最短コード
あなたのプログラム: 2つのプログラム(両方とも同じ言語)を作成します。ストレージプログラムはSTDINから文字列を取得し、永続的な場所に保存し(以下を参照)、エラーなしで終了します。検索プログラムは入力を受け取らず、保管されたストリングを検索して、それをSTDOUTに出力します。 永続性の客観的テスト: ローカルマシンでストレージプログラムを実行し、ローカルマシンの電源を入れ直し、ローカルマシンで検索プログラムを呼び出すことができるはずです。この再起動テストに合格する限り、(Web上でも)必要に応じて文字列を隠しておくことができます。 テストケース: ストレージと検索: echo foo | Store Retrieve foo 繰り返しストアは上書きする必要があります(set()メソッドのように): echo foo | Store echo bar | Store Retrieve bar 繰り返し取得は非破壊的です(get()メソッドのように): echo foo | Store Retrieve foo Retrieve foo ストレージを呼び出す前の取得: これについて心配する必要はありません。検索プログラムは、ストレージプログラムが過去のある時点で実行されたと想定できます。 入力/出力の柔軟性。 人々は、これを厳密なSTDIN / STDOUTから標準のIOルールに拡張するように頼まれました。抜け穴が多すぎるため、できません。一部の標準IOオプションでは、入力が永続的な方法ですでに保存されています。たとえば、「プログラムはファイルから入力を取得できます」。厳密なSTDINとSTDOUTよりも柔軟になりたいが、水門を開かない。 標準のIOルールスレッドから、課題を解決しないものを選択しています。 必要に応じて、プログラムはGUIプロンプトおよびコマンドラインプロンプトを介して入力を取得できます。 プログラムは画面に表示することで出力できます。これにはGUIダイアログが含まれます プログラムはコマンドライン引数を介して入力を取得できます プログラムはSTDERRに出力できますが、実際にはエラーをスローすることはできません。 代替を使用する場合、ユーザー対話型である必要があります。ユーザーは、入力をプログラムにパイプする、プログラムが提供するプロンプトに入力する、またはプログラムのコマンドライン引数として入力を入力する以外に、他の作業を行う必要はありません。ユーザーは、検索プログラムを実行して画面に出力を表示したり、STDOUTまたはSTDERRに送信したりする以外に何もする必要はありません。 許可される仮定: 2つのプログラムは同じディレクトリで実行されます プログラムには、そのディレクトリに対する読み取り/書き込み権限があります 作成したファイルは再起動後も存続します(一時ディレクトリにはありません) 文字列の一部ではなかった1つの末尾の改行が許可されます。他の末尾の空白はありません これはコードゴルフであり、スコアは両方のプログラムのバイトの合計です。

30
3…2…1…クラッシュ!
あなたの仕事は、実行されるたびに10からカウントダウンし続ける完全なプログラムを書くことです。 プログラムを初めて実行すると、印刷されます10。 次回は、が出力されるはず9です。 次回は8、などを出力するはずです。 印刷する代わりに0、プログラムがクラッシュするはずです。その後、実行中のプログラムをこれ以上処理する必要はありません。 保管に使用される機能は、プログラムを最初に実行する前に空であると想定される場合があります。 Python 3での実装例は次のとおりです。 try:f=open("a","r+");v=int(f.read()) except:f=open("a","w");v=10 1/v print(v) f.seek(0) f.write(str(v-1)) これはcode-golfなので、最短の回答(バイト単位)が勝ちます。

30
ASCIIの三角形
あなたの仕事は、ASCII三角形を印刷するプログラムまたは関数を書くことです。次のようになります。 |\ | \ | \ ---- プログラムはn、制約付きの単一の数値入力を受け取ります0 <= n <= 1000。上記の三角形の値はでしたn=3。 ASCIIの三角形にはnバックスラッシュ(\)と垂直バー(|)、n+1行とダッシュ(-)があり、各行には最終的な行のほかに行番号(0から始まる、つまり最初の行は行0)と等しいスペースがあります。 。 例: 入力: 4 出力: |\ | \ | \ | \ ----- 入力: 0 出力: このテストケースでは、出力は空でなければなりません。空白なし。 入力: 1 出力: |\ -- 入力と出力は、私が指定したとおりでなければなりません。 これはcode-golfなので、できるだけ短いコードを目指してください!
30 code-golf  ascii-art  code-golf  rubiks-cube  code-golf  path-finding  maze  regular-expression  code-golf  math  rational-numbers  code-golf  kolmogorov-complexity  graphical-output  code-golf  tips  code-golf  string  permutations  code-golf  sorting  base-conversion  binary  code-golf  tips  basic  code-golf  number  number-theory  fibonacci  code-golf  date  code-golf  restricted-source  quine  file-system  code-golf  code-golf  math  code-golf  ascii-art  code-golf  math  primes  code-golf  code-golf  math  matrix  code-golf  string  math  logic  factorial  code-golf  palindrome  code-golf  quine  stateful  code-golf  interactive  code-golf  board-game  code-golf  math  arithmetic  code-golf  string  code-golf  math  matrix  code-golf  math  abstract-algebra  polynomials  code-golf  date  code-golf  string  array-manipulation  sorting  code-golf  game  code-golf  string  code-golf  ascii-art  decision-problem  code-golf  number  sequence  code-golf  code-golf  code-golf  sequence  fibonacci  code-golf  math  geometry  random  code-golf  code-golf  math  decision-problem  fractal  rational-numbers  code-golf  number  number-theory  code-golf  combinatorics  permutations  card-games  code-golf  math  sequence  array-manipulation  fibonacci  code-golf  sequence  decision-problem  graph-theory  code-golf  ascii-art  parsing  lisp  code-golf  string  math  natural-language  logic  code-golf  math  logic  code-golf  string  alphabet  code-golf  string  code-golf  string 

9
インクリメンタルクイン
あなたの仕事は、ソースコードの最初の文字を出力するプログラムまたは関数を作成し、次に実行するたびに2番目、3番目...を出力することです たとえば、プログラムがfileのfoo言語barであった場合baz.bar、次のような出力が得られます。 λ bar baz.bar f λ bar baz.bar o λ bar baz.bar o この方法でソースコードを出力すると、プログラムは何でもできます。あなたは、ファイルのソースコードを変更しますが、印刷するためのソースコードであることを覚えているかもしれ元のソースコード。 これはコードゴルフであるため、バイト単位の最短プログラムが優先されます。

15
私の後に繰り返して!
引数として文字列を指定すると、重複しない最長の重複部分文字列の長さ、またはそのような文字列がない場合はゼロを出力します。 入力文字列が空ではないと仮定できます。 例 abcdefabc:部分文字列abcは位置1と7で繰り返されるため、プログラムは3を出力する必要があります abcabcabcabcab:abcabcまたはbcabcaまたはcabcab繰り返されるため、プログラムは6を出力します。(サブストリングabcabcabcabも繰り返されますが、オカレンスは重複するため、受け入れません)。 aaaaaaa:aaaたとえば、位置1と4で繰り返されるため、プログラムは3を出力します。 abcda:aが繰り返されるため、プログラムは1を出力します。 xyz:繰り返し文字列なし→ 0 ababcabcabcabcab:6を返す必要があります これはcode-golfなので、バイト数が最も少なくなります。
23 code-golf  string  code-golf  code-golf  kolmogorov-complexity  primes  code-golf  kolmogorov-complexity  hexadecimal  code-golf  code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

6
秘密を守れ!
私にはたくさんの秘密があり、それらを保管する場所はありません! 目標は単純です。文字列を保存し、パスワードで保護できるプログラムを作成します。 プログラムは、エイリアス、パスワード、および(オプションの)シークレットをパラメーターとして受け取ります。 指定されたエイリアスでプログラムが初めて呼び出された場合、秘密を保存/記憶し、必要なものを出力します。 プログラムが以前に使用されたエイリアスで呼び出された場合、パスワードがそのエイリアスで最初に実行されたときと同じである場合、そのエイリアスのシークレットが出力されます。 その他の場合 特定のエイリアスで最初に呼び出され、シークレットが指定されていない場合は、何も保存しません。 使用されたエイリアスを使用してプログラムが呼び出され、パスワードが正しくない場合-あらゆる種類のエラーを返すか、まったく何も返しません。 使用されたエイリアスでプログラムが呼び出された場合、パスワードは正しく、新しいシークレットが提供されます。古いシークレットを出力し、新しいシークレットに置き換えて、次回は新しいシークレットのみが出力されるようにします。 使用されたエイリアスでプログラムが呼び出された場合、パスワードは正しく、新しいシークレットは提供されません。古いシークレットを出力し、置き換えられないことを確認してください。 注:これらのシークレット/パスワードは安全に保存する必要はありません また、注:エイリアスのパスワードとシークレットの英数字入力はすべて受け入れる必要があります 標準ルールが適用されます、幸運を祈ります!

12
仕事仲間からの挨拶ボット
毎週火曜日と木曜日に自宅で仕事をしている同僚がいます。午前8:00頃、彼は次のテキストを含むメッセージを送信します。 こんにちは今日は自宅で仕事をしています 彼が毎日家にいるという負担から彼を解放するために、私たちは彼のためにこの仕事を自動化したいと思います。 チャレンジ 次のようなコードをできるだけ少ないバイトで記述します。 現在の時刻を受け取る:コードは、現在の年、月(1〜12)、日(1〜31)、時間(0〜23)、分(0〜59)、および曜日の値を受け取ることができます。 (この番号が0から始まるか1から始まるかを選択できます。0/ 1が日曜日、月曜日、またはその他の日を意味する場合)。代わりに次のような構造を受け取ることがDate、DateTime、Calendarまたは他の時間関連の構造は、あなたの言語がそれを許可している場合。yyyyMMddHHmm必要に応じて日付を含む文字列、または日付と時刻の2つの個別の文字列、および曜日を含む整数を受け取ることもできます。お気軽に。 メッセージを仕事のチャットに送信する必要があるかどうかを示す、2つの一貫した真実と偽の値を返します。 ルール このコードは定期的に呼び出されると想定されています。それにもかかわらず、正確な周期性は無関係です。 曜日が火曜日または木曜日で、時刻が午前8時でエラーマージンが10分(7:50から8:10までを含む)である場合、真偽値を返す必要があります。 指定された日のそれらの時間の間にコードが初めて呼び出される場合にのみ、真偽値を送信する必要があります。ボットが同じメッセージを連続して何度も送信するのは望ましくありません。この制限を管理する方法は完全にあなた次第です。 コードは、繰り返し実行される独立したプログラムの場合もあれば、常に実行されているより大きなコードの一部である場合もあります。あなたの選択。 コードの実行の間に再起動は行われないと想定できます。 日付は常に正しいと仮定することができます。 コードについて、特に永続性を実現するために使用される方法について説明することをお勧めします。 例 (Week starts on Monday: 1, the following invokations will be made in succession) 2018,08,27,08,00,1 = falsey (not Tuesday or Thursday) 2018,08,28,07,45,2 = falsey (out of hours) 2018,08,28,07,55,2 = truthy (first time invoked …

13
永続的に自己修正するコード
現在、ほとんどの言語にはコードを「自己修正」する非常に簡単な方法があることがわかっています。ただし、実際にコードを変更してその一部をディスク上で編集する場合はどうでしょうか? あなたの目標は、数字を出力するコードを作成し、フィボナッチ数列の次の数字で数字を置き換えるように独自のファイルを編集することです: $ ./program 1 $ ./program 1 $ ./program 2 $ ./program 3 $ ./program 5 [etc...] ルール コードの「外側」に番号を保存することはできません。コメントなし、スクリプトに終了するよう指示せず、EOFなしなど コードが任意のファイル名で機能する場合、バイト量から2を引き$BYTESNOW ($ORIGINALBYTES - 2)、タイトルを記述します。(ファイル名は、任意の英数字ファイルパスの範囲内であると想定されます。) コードは、外部の配管支援なしで、出力をファイルに単独で書き込む必要があります。 コードは1または0から開始できます。関係ありません。

4
いくつのインスタンスが実行されていますか?
現在実行されている自身のインスタンスの数を報告する無期限に実行するプログラムを作成します。プログラムの各インスタンスは、現在実行中の他のすべてのインスタンスから開かれた順序も報告する必要があります。 例 ユーザーが起動初めてプログラムは-私たちは、このインスタンス1インスタンス1のディスプレイと呼ぶことにします1/1、それがあるので、最初の合計のうち発足するインスタンス1、現在実行中のインスタンスが。 インスタンス1の実行中に、ユーザーは2回目のプログラムを起動してインスタンス2になります。インスタンス1が表示され1/2、現在実行中の合計2つのインスタンスのうち最初のインスタンスになります。例えば2ディスプレイ、それがあるため、第二のトータルのインスタンスのうち2現在実行中のインスタンス。2/2 ユーザーが5つになるまでさらにインスタンスを生成し続けるとします。起動順に、出力は次のとおり1/5 2/5 3/5 4/5 5/5です。 彼らはそれぞれなので、それでは、ユーザーがインスタンス3インスタンス4を終了することを決定したとしましょうことは、その後、新しいインスタンス3およびインスタンス5新しいインスタンス4となり第三及び第四今の合計であるもののうち開始されたのはインスタンス4インスタンス。したがって、各インスタンスの出力の変更は次のようになります。 1/5 → 1/4 2/5 → 2/4 3/5 →(終了) 4/5 → 3/4 5/5 → 4/4 ルール 2つの数値(インスタンス番号、合計インスタンス)を適切な形式で出力できます。 インスタンスが起動または終了するたびに、他のすべてのインスタンスはそれぞれの出力を100ミリ秒以内に更新する必要があります。 新しい行(または置換ではなく他の「追加」出力形式)に印刷して出力を更新する場合、インスタンスの数が変更された場合にのみ印刷し、それ以外の時間には印刷しないでください。 これはコードゴルフです。バイト単位の最短プログラムが優先されます。 回答では、ユーザーが複数のインスタンスを開くために何をする必要があるかを指定すること、および/またはデモのためにスクリーンキャストを記録することをお勧めします。

4
エントロピークイン!
あなたの仕事は、次のようなプログラムまたは関数を書くことです。 初めて実行するとき、ソースコードを出力します。 後続の実行では、以前に出力されたものを出力する必要がありますが、1つのランダムな文字変更(以下で定義)が必要です。一様にランダムな変更である必要はありませんが、起こりうるすべての変更はゼロではない可能性があります。 最初の実行後は、あなたのプログラムはなりません必ずしももうQUINEなります。出力は変更されます(プログラムも自由に変更できます)。 たとえば、あなたのクインがの場合ABCD、繰り返し実行すると次のように出力されます: ABCD A!CD j!CD j!CjD 仕様書 文字の変更は次のいずれかです。 ランダムな文字の挿入、 ランダムな文字の削除、または 文字を新しいランダムな文字に置き換えること。新しい文字は、それが置き換える文字と同じであることが許可されていることに注意してください。その場合、変更は行われません。 もちろん、空の文字列から文字を削除または置換することは有効な変更ではありません。 これはquineとタグ付けされていますが、ソースコードの読み取りに対するルールは適用されません。 ソースコードで使用されている文字が含まれている限り、任意の文字セットを使用できます。

5
モンキーアイランド:ナビゲーターの頭
警告:このチャレンジには、The Secret of Monkey Islandの軽度のネタバレが含まれています。 ゲームの終わりに向かって、魔法のように保存されたナビゲーターの頭がカタコンベを通り抜けます。 あなたはその眼球のネックレスを必要としますが、頭はあなたにそれを与えることに消極的です。それを得る一つの方法は、ただ物beいをすることです: Guybrush:ネックレスを頂けますか? 頭:いいえ、でも丁寧に質問してくれてありがとう。 ガイブラシ:おいおいおい 頭:あなたはあなたが望むすべてを請うことができますが、あなたはそれを持つことはできません。 ガイブラシ:可愛がって? 頭:あなたはあなたが望むすべてを請うことができますが、あなたはそれを持つことはできません。 ガイブラシ:プリティプリティください? 頭:あなたはあなたが望むすべてを請うことができますが、あなたはそれを持つことはできません。 Guybrush:砂糖を上に乗せてください。 頭:ああ、大丈夫、あなたは大きな赤ちゃん。きみにあげる。ねえ、肩がなければネックレスは何がいい? チャレンジ 上記のダイアログを印刷する完全なプログラムを作成します。キャッチは、プログラムが呼び出されるたびに、2行(GuybrushとHeadの応答によって訴えられる1行)だけを印刷することです。たとえば、投稿がPythonで記述されている場合、使用方法は次のようになります。 $> python please.py Guybrush: May I please have that necklace? Head: No, but thanks for asking so politely. $> python please.py Guybrush: Oh come on, pleeeeease? Head: You can beg all …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.