プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

30
これは機能ですか?
(key, value)ペアのリストが与えられたら、それが関数を表すかどうか、つまり各キーが一貫した値にマップされるかどうかを判断します。つまり、2つのエントリのキーが等しい場合は、値も同じである必要があります。繰り返し入力しても問題ありません。 例えば: # Not a function: 3 maps to both 1 and 6 [(3,1), (2,5), (3,6)] # Function: It's OK that (3,5) is listed twice, and that both 6 and 4 both map to 4 [(3,5), (3,5), (6,4), (4,4)] 入力:(key, value) 1〜9の数字を使用したペアの順序付きシーケンス。特定の順序付けは不要です。または、キーリストと値リストを別々の入力として使用することもできます。 出力:機能の一貫した値、および機能以外の一貫した値。 テストケース:最初の5つの入力は関数であり、最後の5つの入力は関数ではありません。 [(3, 5), (3, 5), (6, …

30
バーナーディーノは、変更されていないドルの単語を識別する
定義 ドルの単語は、その文字の各= 1からZ = 26、セント値を与えられ、そして文字が合計され、結果は100である単語である。ここでは、コードレビューに一例であり、ここにリストされオンラインで見つけたドルの言葉。 入力 入力はazからアルファベット順になり、1つの言語のテキストデータ型になります(配列は許可されます)。他の入力を考慮する必要はありません-スペース、アポストロフィ、ハイフンはありません。小文字、大文字、または組み合わせとして使用できます。末尾の改行が許可されます。 出力 入力がドルの単語である場合は真実の値を出力し、そうでない場合は偽の値を出力します。 テストケース 真実: buzzy boycott identifies adiabatically ttttt 偽り: zzz zzzzzzz abcdefghiljjjzz tttt basic これはコードゴルフなので、バイト単位の最短回答が勝ちです!標準の抜け穴とルールが適用されます。タイは最初のポスターに行きます。
47 code-golf  string 

15
アタック、ディケイ、サステイン、リリース
サウンドシンセサイザーは、エンベロープジェネレーターを使用して、サウンドの特定のパラメーター(全体的なラウドネスなど)の経時変化を制御します。多くのシンセサイザーでは、Wikipediaの次の図に示すように、エンベロープは4つのパラメーターによって定義されます。 攻撃時間(A):キーが最初に押されたときに、エンベロープがゼロから開始して最大レベルに達するまでにかかった時間。 減衰時間(D):エンベロープが指定された持続レベルに達するまでにかかった時間。 持続レベル(S):最初の攻撃と減衰の後、キーが押されている限り維持されるレベル。 リリース時間(R):キーがリリースされたときにエンベロープがゼロに達するまでにかかった時間。 挑戦 4つのパラメーターA、D、S、Rを入力し、エンベロープをプロットします。 パラメータは0〜127の整数値です。 最大レベル(アタックフェーズの終わりに達した)があると仮定されるであろう127。 サステインレベルの水平セグメントは、持続時間64を持つと想定されます(実際の音では、この持続時間は固定されていませんが、キーが保持されている時間によって決まります)。 フォーマットと詳細 出力は、ラスターまたはベクター形式の画像でなければなりません。ラスタの場合、折れ線は少なくとも50ピクセル、垂直方向および水平方向に占有する必要があります。 画像は、表示するか、標準画像形式のファイルとして作成できます。ファイルはディスクに書き込むことができます。または、正確な内容をSTDERRに出力するか、関数の戻り引数として出力できます。 グラフには、エンベロープを定義する折れ線のみを含める必要があります。各軸のスケールは自由に選択できます。軸線、数値ラベル、線の色などの他の要素はオプションです。 入力手段と形式は通常どおり柔軟です。たとえば、4つの数値を任意の順序で、またはそれらを含む配列を取ることができます。プログラムまたは機能を提供できます。標準的な抜け穴は禁止されています。 バイト単位の最短コードが優先されます。 テストケース 入力の形式はです[A D S R]。スケールは各図で異なることに注意してください(スケールは自由に選択できるというルールに従って) [15 30 70 40] [64 64 64 64] [0 10 50 80] [0 0 90 80] [5 50 0 0] [5 50 0 80] [24 32 127 48]

18
普通の人のようにスキトルズを食べる
スキトルズは、5つの異なるフレーバーがある色付きのキャンディーです。ブドウ、青リンゴ、レモン、オレンジ、イチゴはそれぞれ(p)urple、(g)reen、(y)ellow、(o)range、および(r)edで表されます。私は、すべての異なる色を並べ替えて、順番にそれらを食べることによって、スキトルズを食べるのが常でした。オフィスでいくつかの奇妙な外観を取得した後、私は今それらを普通の人のように食べるふりをします。あなたの仕事はこれをエミュレートすることです: コード(完全なプログラムまたは機能)は、スキトルの配列(10x10)を(妥当な形式で)入力として受け取ります。この配列は、並べ替えられていないスキトルズの山を表します。一番好きな色から好きな色に「食べる」ことがあなたの仕事です。私の優先順位はグレープ、青リンゴ、レモン、オレンジ、イチゴですが、一貫して実施されている限り、任意の順序を自由に選択できます(提出物に好みを記載して、判断できるようにしてください)。各キャンディーを食べた後、コードは、食べたものをスペースに置き換えた残りのパイルを(入力と同じ形式で)出力します。お気に入りだけが残るまで繰り返します。スキトルを選択して食べることができます(ランダムまたは確定的)。末尾のスペースは保持する必要があります。 たとえば、出力シーケンスは次のようになります(簡潔にするために5x5を使用し、スペースをとして表示します.) start 1 2 3 4 5 n .org. .org. .org. .org. .or.. .or.. ..r.. prgrg .rgrg .rgrg .rgrg .rgrg .r.rg .r.r. gggpr gggpr ggg.r ggg.r ggg.r ggg.r ....r oyyor oyyor oyyor oyyor oyyor oyyor ....r .r.p. .r.p. .r.p. .r... .r... .r... .r... これはcode-golfなので、バイト単位の最短コードが優先されます TL; DRルール: 提出は完全なプログラムまたは機能である場合があります 入力は、妥当な方法(STDIN、関数の引数など)によって、妥当な形式(文字列、リスト、行列など)で行われます。ただし、行間には線引きが必要です …
47 code-golf 

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
ランダムな色のピクセルを表示する
私はいつもランダムに色付けされたピクセルでいっぱいの画面が好きでした。彼らは見るのが面白く、それらを描くプログラムは見るのが楽しいです。 挑戦 画面またはグラフィカルウィンドウを色付きのピクセルで塗りつぶします。 ルール あなたのプログラムは、ピッキングのにもチャンスが持っている必要がありますすべての色(すなわち範囲内#000000に#FFFFFF)、またはお使いのシステム上に表示することができ、すべての色を。 プログラムは、手動で停止するまでランダムピクセルを表示し続ける必要があります(それ自体では終了できません)。 出力に少なくとも40x40の「ピクセル」がある限り、ピクセルのサイズは任意です。 プログラムは、3分間実行した後、少なくとも1回は画面/ウィンドウのすべてのピクセルを置き換えることができる速度で実行する必要があります。 あなたのプログラムは真にランダムな色とポイントを選択して置き換える必要があります。ランダムに見えるだけではありません。pRNG以上を使用する必要があり、出力を毎回同じにすることはできません。 あなたのプログラムは、反復ごとにすべての色を選ぶ可能性が等しくなければなりません。 プログラムは一度に1つのピクセルのみを置き換える必要があります。 あなたのプログラムはインターネットもファイルシステムも使用できません(/dev/randomそして/dev/urandom除外されます)。 例 ランダムに停止すると、出力は次のようになります。 勝者 各言語の最短回答が勝ちです。楽しんで!

23
「無限」からカウントダウン
不可能なタスクのように思えますか?まあ、実際にはそれほど難しくありません。単語Infinityを8ビットのバイナリASCIIコードとして記述すると、次のようになります。 01001001 01101110 01100110 01101001 01101110 01101001 01110100 01111001 これを連結し、10進数値に変換できます5291279215216915577。これで作業できる数は... カウントダウンする方法は次のとおりです。 元の文字列を10進数として出力します(上記を参照) バイナリ表現の先頭の0を削除します(存在する場合) バイナリ表現のビットを切り替えます(1-> 0、0-> 1) 数値を10進数で出力します 0に達するまで手順2〜4を繰り返します。 チャレンジ: 入力として文字列を受け取り、上記の手順を実行したときに取得する数値を(適切な形式で)出力するプログラムまたは関数を作成します。 テストケース: チャレンジは1つのテストケースにすぎませんが、このチャレンジはかなり簡単に理解できると思います。これをかなり短くするためにInf代わりに使用しますInfinity。 Inf 4812390 (10010010110111001100110) 3576217 ( 1101101001000110011001) 618086 ( 10010110111001100110) 430489 ( 1101001000110011001) 93798 ( 10110111001100110) 37273 ( 1001000110011001) 28262 ( 110111001100110) 4505 ( 1000110011001) 3686 ( 111001100110) 409 …

16
スタックオーバーフロー
(この質問に触発された) 目的 あなたの仕事は、スタックオーバーフローロゴのASCIIバージョンをSTDOUTに印刷するプログラムまたは関数を書くことです。 \|/ (-) (-) (-) (-) プログラムは、ここでHおよびNと呼ばれる2つの入力を受け取る必要があります。スタックの「コンテナー」の高さ(括弧)はHによって決定されます。スタック内のアイテムの数はNによって決定されます。スタックは「オーバーフロー」します。 入出力 Hはコンテナの高さを決定します 例えば: H = 1: ( ) H = 2: ( ) ( ) H = 3: ( ) ( ) ( ) Hは常に少なくとも1 Nは、スタックにあるアイテムの数を決定します。次の例はすべてH = 2です。 N = 0 ( ) ( ) N = 1 ( ) (-) …

3
24時間コーディング
行ターミネータを含まず、入力を受け取らない2文字以上の単一行プログラムを作成します。たとえば、プログラムは次のようになります。 MyProgram プログラムを時計の針が12時、3時、6時、および9時の位置に配置する場合、対応する時間数を出力する必要があります。他の時間をサポートする必要はありません。 具体的には: プログラムが12時の針のように配置されている場合(🕛) m a r g o r P y M 実行すると出力されます12。 プログラムが3時の針のように配置されている場合(🕒) m a r g o r P y MyProgram 実行すると出力されます3。 プログラムが6時の針のように配置されている場合(When) m a r g o r P y M y P r o g r a m 実行すると出力されます6。 プログラムが9時の針のように配置されている場合(When) ........m ........a ........r ........g …

2
シンボルが5つしかないJSF ** k?
これはチャレンジではなく質問です。 プログラミングパズルの解決や特定の種類の課題に関連する非チャレンジ型の質問もトピックに含まれています。 質問に今: 5文字だけのJavaScriptコードを書くことは可能ですか?JSFuckはすでに6つのシンボルでこれを行っています!+[]()が、その!キャラクターが必要かどうか疑問に思います。 JSFuckは、文字列へのキャスト(空の配列の追加による)、数値へのキャスト(前に+を書き込む)、および否定によるブール値へのキャストの組み合わせで動作します。例えば: [] \\ Empty array +[] \\ Cast to number -> 0 !+[] \\ Negate -> true !+[]+[] \\ Cast to string -> "true" この文字列から、内部に数字を含む角括弧を使用してすべての文字を抽出できます。また、何回でもtrueを加算することで、任意の数字を作成できます。 このように、多くの文字が見つかり、文字列に連結できます。作成できる最も重要な文字列"constructor"はFunction、任意の関数から取得するために使用でき、このオブジェクトを使用して文字列をJavaScriptとして実行できるためです。 []["find"] \\ the function Array.prototype.find []["find"]["constructor"] \\ the Function object []["find"]["constructor"](string)() \\ same as eval(string) ご覧のとおり、!ここには2つの用途があります。 文字列から文字を選択する番号を作成します。 をブール値にキャストして取得"true"し"false"ます。 これら2つの最初の1つは++、直接で0はなく、インクリメンターを使用して行うこともできますが、配列内の要素で使用できます。 +[] …

30
デイ7のランダムゴルフ:明らかにランダムなキャラクター
シリーズについて これは、ランダムゴルフオブザデイシリーズのゲストエントリです。 まず、これを他のコードゴルフチャレンジと同様に扱い、シリーズについてまったく心配することなく答えることができます。ただし、すべての課題にリーダーボードがあります。リーダーボードは、最初の投稿でシリーズに関する詳細情報とともに見つけることができます。 入力 入力は行われません。 出力 オプションの末尾の改行を含むアルファベットの1文字(大文字と小文字は無関係)。各文字には、選択される確率がゼロ以外である必要があり、26の確率すべてが明確でなければなりません。すべてのあいまいさを削除するには:明確とは、互いに等しい2つの確率が存在してはならないことを意味します。 得点 これはコードゴルフです。バイト単位の最短コードが優先されます。 有効なエントリは、終了しない確率がゼロの完全なプログラムまたは機能です。 アルファベット 混乱を避けるため、使用される特定のアルファベットはラテンアルファベットです。 どちらか ABCDEFGHIJKLMNOPQRSTUVWXYZ または abcdefghijklmnopqrstuvwxyz 大文字または小文字を出力することを選択できます。または、それが役立つ場合は、異なる実行で異なるケースを出力することを選択できます。与えられた文字の確率は、どちらの場合でもその文字が現れる確率(上または下)です。 説明 出力からはまったく明らかではないので、26の異なる確率をどのように達成したかを明確に説明してください。 リーダーボード (ここから) コードスニペットを表示 var QUESTION_ID=89621,OVERRIDE_USER=20283;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i; body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table …

30
「Do While False」イディオム
偽りながら 今日の仕事では、同僚の1人がdo while(false)のユースケースを説明していました。彼が話していた人は、これはばかげていて、単純なifステートメントがはるかに優れていると思っていました。その後、私たちは一日の半分を無駄にして、次のようなものを書くための最良の方法について話し合いました。 do { //some code that should always execute... if ( condition ) { //do some stuff break; } //some code that should execute if condition is not true if ( condition2 ) { //do some more stuff break; } //further code that should not execute if condition …
47 code-golf 

17
Froot Loop Necklaceの修正
ネックレス、ブレスレット、靴ひもなどのために、フルートループのストランドをつなげているとします。6つのループの色がありますRの ED、O範囲、Y ellow、グラム REEN、Bの LUE、及びPの urpleは。ストランドを一番左の赤から開始し、虹の順序で右に循環し、紫で終了するようにします。つまりroygbp、何回か(おそらく0)繰り返される文字列でストランドを表すことができるようにする必要があります。 問題は、特定の順序ではなく、すでにループを張っているということです。一番最初のループを赤、一番最後のループを紫にして、左から右に進む正しいレインボーサイクルの数を最大化できるように、どのループを食べて食べるべきではありませんか? 任意の文字列を取り込んで、食べるループの場所と食べないループの場所にroygbp同じ長さの文字列を出力または返すプログラムまたは関数を作成します。en たとえば、Froot Loopストランドが次のように見える場合 入力は gorboypbgbopyroybbbogppbporyoygbpr そして、左から右に進むと、3つの完全なroygbpレインボーシーケンスを見つけることができますが、ループのいくつかを食いつぶす必要があります。したがって、出力は次のようになります eenenneennenennneeeeneennenennnnne 完全な3サイクルストランドになります。 入力に完全なレインボーサイクルがない場合、出力はすべてにeなり、ストランドはループなしになります。例えば、入力にproygbはoutputがありますeeeeee。逆に、proygbpoutputがありますennnnnn。 すべての入力ストランドに少なくとも1つのループがあると仮定できます。 バイト単位の最短コードが優先されます。
47 code-golf  string 

30
網膜かゴミか?
私たちは素晴らしい技術の時代に生きており、テレビに美しく詳細な8Kスクリーンを、そしてモバイルブラウジングの喜びのために携帯電話に2Kディスプレイさえ持つことができます。私たちは近年、スクリーン技術の面で大きな進歩を遂げました。 この製品の1つは、AppleのRetinaで人気のある用語です。これは、問題のディスプレイのピクセル密度が非常に高いことを示しており、10〜12インチ離れた視距離では、個々のピクセルを簡単に選択することはできません。 Steve Jobsは、これが発生するピクセル密度は1インチあたり約300ピクセルであると述べ、広告に使用されるRetina流行語を使用して、デバイスでこの範囲のピクセル密度の使用を開始しました。 ピクセル密度は、次の式で計算できます。 ここdインチの画面の対角であり、w横軸上のピクセルの数であり、h縦軸の画素数です。 あなたのタスク このタスクでは、Retina標準を使用して、購入する価値のある製品を決定します。あなたが現代の消費者であるため、デバイスを購入するときは、90年代のデバイスではなく、良い製品を手に入れたいと思います!そのように、あなたが作成したいプログラムや機能として、画面の幅、高さと対角線の長さを取る入力または関数のパラメータ、および(網膜画面として特定の画面条件を満たしているかどうかを示しますD > 300ことで)画面に印刷したり、帰国を。 Retina以外のデバイスに対する軽のため、デバイスが適格である場合とそうでない場合にプログラムまたは機能が出力されます。Retina!Trash! すべての数値が0より大きいと仮定することができます。幅と高さのピクセル値は常に整数です。画面サイズは、小数をサポートしている限り、どのように解釈されてもかまいません。入力は任意の順序で行うことができ、最大3行まで入力できます。 I / Oの例 1920 1080 4.95 -> Retina! 2560 1440 5.96 -> Retina! 1920 1080 10.5 -> Trash! 10 10 0.04 -> Retina! 4096 2160 19(.0) -> Trash! 8192 4320 100.00 -> Trash! 3000 1500 11.18 -> Retina! …
47 code-golf 

30
バックハンド^ H ^ H ^ H ^ H ^ H ^ Hspaces
一部の端末では、バックスペースを押すと^H、前の文字を削除するための制御コードが生成されます。これにより、編集がコメディ効果を装ってこっけいなイディオムが発生しました。 この愚か者に親切にしてください^ H ^ H ^ H ^ H紳士、彼は本社から訪問しています。 1つ以上^Hの文字列を指定すると、それぞれのバックスペースの結果を出力します^H。入力は印刷可能な文字(ASCII 32-126)のみを使用し、^としてのみ表示され^Hます。空のテキストではバックスペースは発生しません。 出力環境が制御コード、特にバックスペースコードをサポートしているとは思わないかもしれません\x08。 >> Horse^H^H^H^H^HCow Cow >> Be nice to this fool^H^H^H^Hgentleman, he's visiting from corporate HQ. Be nice to this gentleman, he's visiting from corporate HQ. >> 123^H45^H^H^H78^H 17 >> Digital Trauma^H^H^H^H^H^H^H^H^H^H^H^H^H^HMaria Tidal Tug^H^H^H^H^H^H^H^H^H^H^H^H^H^H^HDigital Trauma Digital Trauma リーダーボード これは、MartinBüttnerの厚意による言語別のリーダーボードです。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 …
47 code-golf  string 

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