タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

15
シフターを作成する
複数のn場所に「シフト」するには、次の操作を行います。 最後のn桁を削除 n番号の最初に最初の数字のコピーを追加します たとえば、31415数値を3桁シフトするには、最後の3桁を取り出してを取得し31、次に最初の桁の3つのコピーを最後に追加3して、を与え33331ます。 数値が負の場合、代わりに数字を左から取得し、最初の数字を右から「埋める」必要があります。たとえば、文字列31415を-3桁シフトすると、になります15555。 数値が0の場合、変更は行われません。 シフトがプログラムの長さを超える場合、入力された数字が削除され始める可能性があります。つまり、指定された数値が文字列の長さよりも大きい場合、文字列全体が1桁になった後は、それ以上の変更は行われません。 チャレンジ との2つの数値が与えられるnとs、リターンnはs場所をシフトしてシフトします。 テストケース n, s -> result 7243, 1 -> 7724 452, -1 -> 522 12, 1 -> 11 153, 4 -> 111 これはcode-golfなので、有効な最短の送信(バイト単位)が優先されます。
10 code-golf  math 

8
壊れたひものピラミッド
文字列nを指定して、現在の行を基準にして断片に分割された文字列のピラミッドを作成します。 最初の行には、変更されていない文字列が含まれています。 2行目には、パイプで半分に分割された文字列が含まれています。 3行目では、3番目の行で区切られています... 等々。各部分文字列の長さ。ここで、lは文字列nの長さと等しく、 床(l / n) 残った文字は独自のサブストリングに入れられます。使用される最後の行は、部分文字列の長さが2である最初の行です。 テストケース: 入力:こんにちは、世界。 出力: Hello, world. Hello,| world|. Hell|o, w|orld|. Hel|lo,| wo|rld|. He|ll|o,| w|or|ld|. 入力:abcdefghij 出力: abcdefghij abcde|fghij abc|def|ghi|j ab|cd|ef|gh|ij 入力:01234567890abcdef 出力: 01234567890abcdef 01234567|890abcde|f 01234|56789|0abcd|ef 0123|4567|890a|bcde|f 012|345|678|90a|bcd|ef 01|23|45|67|89|0a|bc|de|f 追加のルール: 完全なプログラムまたは関数のどちらか少ない方のコードを使用して記述できます。 入力は常に少なくとも4文字の長さになります。 言語でサポートされている場合は、改行を使用する必要があります。不可能な場合は、改行を: 入力は常に印刷可能なASCIIになります。 プログラムがP対NPを解決する場合は100%マイナス。 リーダーボード: コードスニペットを表示 var QUESTION_ID=104297,OVERRIDE_USER=62384;function answersUrl(e){return"http://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"http://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 …
10 code-golf  string 

9
事後アクセサリー!
この課題は数学に触発されて事実です。プログラミングではありません。 階乗、またはファクトの数学的表記は感嘆符!です。感嘆符も、not多くのプログラミング言語で共通の記号です。 チャレンジ: 数字と文字を含む文字列+ !を入力として受け取り、以下を出力します。 感嘆符の前にあるものはすべて数式として評価されるべきであり、そう2+2なります4。 単一感嘆符の後にすべてが付属品として追加されなければならないので、その前にあるものは何でもへ:2+2!5与えるべきである45、なぜなら2+2=4、および5アクセサリーです。2+2!5+5与える必要があります410。 ので!意味もnot、だ何もない事実の後に付属品はすべきではない追加されます。だから、2+2!!5与えるべきで4あるため、5付属品ではありません。さて、与えるnot(not(true))==trueので。を与える必要があります:、次に、階乗とが続きます。最初は事実ではありませんが、別の感嘆符の後にあり、したがって、これも事実です。2+2!!!5452+2!!5!5+54102+2=4!5!5+555+5 明確化: 感嘆符は+どちらの側にも隣接しません。 +数字の先行はありません(それは5、ではありません+5)。 最初のの前の式の結果である場合は、オプションで先行ゼロを含めることができます!。両方とも4、04入力として受け入れられる出力:0+0!4 エグゼクティブサマリー:各合計を評価します(!区切り記号として扱います)。次に、!(文字列の先頭から数えて)偶数個の後に現れるすべての数字を破棄します。次に、すべて削除します!。 テストケース: ! <- Empty string 5 5 12! 12 !87 87 !!5 <- Empty string 5+5!2+2 104 5+5!!2+2 10 1!2!3!4!5!6!7!8!9 12468 10+10!!2+2!!3+3!4+4 208 2!!3!5 25 2!!3!5!7 25 10!!!!!!!5 105 これはコードゴルフなので、バイト数(各言語で)が最も短いコードが優先されます!説明を強くお勧めします!
10 code-golf 

3
単純な立方体を描く
実際の3次元の立方体を描画することについての単一の課題はないので、ここに進みます。 チャレンジ あなたの仕事は、遠近法で回転した立方体を描くことです。別のウィンドウまたは画像として表示できます。 入力 入力は、0〜359.99の3つの異なる数値です...これらは、x、y、z軸を中心とした回転を度単位で表します。 0 0 0 30 0 40 95 320 12 出力 別のウィンドウに表示するか、画像を保存できます。任意のタイプのディスプレイを使用できます(ベクターベース、ラスタライズなど)。 編集:ASCIIも許可され、テキスト出力のみでゴルフ言語を使用できます。 ラスタライズされたグラフィックまたはASCIIグラフィックの出力は、少なくとも50 * 50(ラスタライズのピクセル、ASCIIの文字)である必要があります。 追加情報 正のz軸はウィンドウの外を指し、x軸は水平、y軸は垂直です。基本的にはOpenGL標準です。 特定の軸の負の方向に立方体を見る場合、たとえばy軸を見下ろすと、回転は反時計回りになります。 カメラはz軸上にあり、立方体から負のz方向に適切な距離にあります。立方体は(0; 0; 0)にある必要があります。。立方体も完全に表示され、描画フレームの少なくとも50%を占める必要があります。カメラは立方体で正のz方向を向いている必要があります。 立方体の回転は、x-> y-> zの順序で適用されます。 立方体はその中心を中心に回転し、動かない。 2次元空間に立方体を投影するには、点とカメラの間のz軸に平行な距離で立方体のx座標とy座標を分割する必要があります。 ルール ライブラリのレンダリングは許可されていますが、頂点はコードで定義する必要があります。3Dキューブモデルクラスはありません。 テストケース

2
安全をクラック!
/puzzling/24334/to-catch-a-thiefに触発されました sとs(または任意の他の文字)で満たされたnby n(nそれ自体はオプションの入力)グリッドが与えられます。すべてのセルを同じにすることを目的としています(または)。以下に定義する一連の動きを行うことができます(Puzzling SEリンクとの相違点に注意してください)。0101 セルを選択します。 同じ行と列のすべてのセル(セル自体を除く)は、その反対に変更されます。0へ1と1へ0。 タスクを完了するために必要な最小移動数を出力します。解決できない場合は、負でない整数以外を出力します。最短のコードが勝ちます。 サンプルデータ 1 0 0 0 0 0 0 0 0 -1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 …

9
ヌメロニムかN8?
ヌメロニム単語が数字を使用して短縮された場合(また、「数値収縮」として知られている)です。一般的な短縮方法は、置換された部分文字列の長さを使用して、最初と最後の文字を除くすべてを置換することです。たとえば、のi18n代わりにinternationalization、またはのL10n代わりに使用しlocalizationます。(L小文字はに似すぎているため、大文字になってい1ます。) もちろん、同じフレーズ内のいくつかの単語は同じ省略形を持っている可能性があるので、あなたの仕事は単語のグループをそれらの数字に変換することです、または同じ数字を持ついくつかの異なる単語が存在する場合、プログラムはの結果A7s R4t、略称Ambiguous Result(はい、この結果自体があいまいな結果であることを知っています。) ルール: プログラムまたは関数を使用して、結果を出力または返します。 入力は単一の文字列として取得されます。 出力は、スペースで区切られた単語の単一の文字列です。 プログラムは長さ3の単語を変換する必要はなく、短い単語を変換するべきではありません。 場合l(小文字のエル)の前に発生するであろう1(1)、それは大文字なされるべきです。 場合I(大文字のアイ)が前に発生するであろう1(1)、それは小文字なされるべきです。 入力は印刷可能なASCIIとスペースになります。単語はスペースで区切られます。 最短のコードが勝ちます。 例: A7s R4t -> A7s R4t (OR: A1s R1t, etc) Ambiguous Result -> A7s R4t Billy goats gruff -> B3y g3s g3f Thanks for the Memories -> T4s f1r the M6s (one possible answer, NOT: Thnks fr …
10 code-golf  string 

7
Base85エンコーディング
チャレンジ ASCII印刷可能文字を含む単一行の文字列の入力を受け取り、Base85でエンコードされた同じ文字列を(ビッグエンディアン規則を使用して)出力できるプログラムを記述します。入力は常に100文字以下であると想定できます。 Base85のガイド 4オクテットは、(通常)5つのBase85文字にエンコードされます。 Base85文字が範囲!にu及び- (117 ASCII 33)z(ASCII 122)。 エンコードするには、4オクテット(32ビット数)で85による除算を継続的に実行し、(各除算の後に)残りに33を加算して、エンコードされた値のASCII文字を取得します。たとえば、このプロセスの最初のアプリケーションは、エンコードされたブロックの右端の文字を生成します。 4オクテットのセットにnullバイトのみが含まれる場合、それらはのz代わりにとしてエンコードされ!!!!!ます。 最後のブロックが4オクテットより短い場合は、ヌルバイトが埋め込まれます。エンコード後、パディングとして追加されたのと同じ数の文字が出力の最後から削除されます。 エンコードされた値の前後には<~、が必要~>です。 エンコードされた値には、空白を含めないでください(このチャレンジのため)。 例 In: easy Out: <~ARTY*~> In: test Out: <~FCfN8~> In: code golf Out: <~@rGmh+D5V/Ac~> In: Programming Puzzles Out: <~:i^JeEa`g%Bl7Q+:j%)1Ch7Y~> 次のスニペットは、指定された入力をBase85にエンコードします。 コードスニペットを表示 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script>String.prototype.toAscii85=function(){if(""==this)return"<~~>";for(var r=[],t=0;t<this.length;t+=4){for(var i=(this.substr(t,4)+"\x00\x00\x00").substr(0,4),o=0,n=0;4>n;n++)o=256*o+i.charCodeAt(n);var s=[];for(n=0;5>n;n++){var e=o%85;o=(o-e)/85,s.unshift(String.fromCharCode(e+33))}r=r.concat(s)}var a=4-this.length%4;return 4!=a&&r.splice(-a,a),"<~"+r.join("").replace(/!!!!!/g,"z")+"~>"};</script><style>#in,#out{margin:20px;width:400px;resize:none}</style><input id="in" type="text" value="Base85"><button onclick="$('#out').text($('#in').val().toAscii85())">Submit</button><br><textarea id="out" rows=5 disabled></textarea> …

18
縮小する数字
入力は、(少なくとも3、最大20)異なる整数の配列です。各整数は-1000より大きく、1000より小さい。 あなたの仕事は、からに「線形マッピング」することで、数値を縮小する0.0こと1.0です。これは、配列の最小数が0.0に、最大数が1.0にマッピングされることを意味します。 配列は、パラメーター(関数内)または標準入力/プログラムの引数(選択可能)として取得します。結果をフォーマットで出力しますdouble1;double2;double3;...。出力は入力と同じ順序でなければなりません。 必要に応じて、出力を小数点以下2桁に丸めることができます。小数点の後に少なくとも1桁ある必要があります。 組み込み関数の使い方(関数規模なmathematicasとしてあなたのための番号、ダウンをRescale)許可されていません。 例: Input Output [5,-20,30] 0.5;0.0;1.0 [1,2,3,4,5] 0.0;0.25;0.5;0.75;1.0 [0,5,100,400] 0.0;0.01;0.25;1.0 (最後の出力は丸められますが、それ以外の場合は丸められます0.0;0.0125;0.25;1.0)

7
中国の干支を計算する
中国の旧正月が近づいていることを考えると、特定の日付の中国の黄道帯、元素、および太極拳を計算するための課題があります。 入力は日付でなければなりません: 1/31/2014 ここで使用される日付はUSスタイルですが、mm/dd/yyyyISO-8601スタイルの場合もあります。yyyy-mm-ddそのため、日付入力のスタイルは厳密ではありません。 出力は、日付に対応する要素とそれに対応するTaijituを含む、中国の黄道帯の動物の標示である必要があります。 Horse - Wood - Yang 黄道帯-要素-Taijituの関係を示す表は次のとおりです。中国の黄道帯-年 出力形式は厳密ではありませんが、動物、要素、およびTaijituコンポーネントを含み、何らかの方法で区切られる必要があります。 上記の日付の有効な出力の例には、次のものがあります。 (horse, wood, yang) ["Horse", "Wood", "Yang"] プログラムは、今日の日付を含め、少なくとも100年の範囲で有効な出力を返す必要があります。これは、少なくとも60年(干支)の2サイクルを考慮する必要があることを意味します。
10 code-golf  date 

2
ユーザー指定の数値を使用して有効な方程式を生成します
これは、中学校で数学の先生がプレイしていたゲームに基づいています。彼はボードに5つのランダムな1桁の数字を書き、次にランダムな2桁の数字を書きます。5桁の1桁の数値すべてを使用して2桁の数値を求める方程式を作成しようとします。これをよりよく説明するためのソリューションの例をいくつか示します。 Input: Solution: 7 5 4 8 4 34 5*8-7+4/4 = 34 3 1 5 7 6 54 (7+3)*6-5-1 = 54 3 9 2 1 6 87 9*(2+1)*3+6 = 87 2 1 6 9 7 16 (9-7+6*1)*2 = 16 2 4 5 8 6 96 8*(5+6)+2*4 = 96 3 8 …

5
素因数から導出された整数列を計算する
以下を実行する関数、式、またはプログラムを作成します。 任意の数の素因数を取り、それらを合計します。たとえば、28の素因数は2 2 7であり、合計すると11になります。 結果に、指定された数の素因数を掛けます。たとえば、28には3つの素因数があり、合計は11になります。11* 3は33です。 リストに既に含まれている番号に到達するまで、結果のリスト(元の番号で始まる)を保存して、プロセスを再帰的に繰り返します。その最終的な番号を追加せずに停止し、リストに重複が含まれないようにします。33が再び28になるため、28の進行は28 33です。 結果のリストの要素を数えます。28の場合、答えは2です。 の結果は次のとおりな0<n<=10ので、アルゴリズムを確認できます。 2 1 1 10 1 11 1 9 5 10 (balphaが指摘したように、higley(1)リスト1 0からの答えは2です。Jで書かれた元のアルゴリズムのバグのため、私は最初は1でした。) 私はうんざりしたSOBであり、OEISでこれを見つけられなかったので、少なくともこのラウンドのコードゴルフの期間中、これを「ヒグレーシーケンス」と呼びましょう。追加のボーナスとして、最初の2つnが最も低いhigley(n)where nが素数ではなく、を見つけますn>1。(私は2つしかないと思いますが、それを証明することはできません。) これは標準のコードゴルフなので、いつものようにキーストロークが最も少なくなりますが、たとえ冗長であっても、他の言語で賢い回答に投票してください。
10 code-golf  math 

7
完璧な5分の1に近い
1-TETから始めて、完全な5分の1(ちょうど比率3/2)のより良い近似を持つ等しい気質を与えます。(OEISシーケンスA060528) OEISからコピーされたシーケンスの正式な説明: 最も近い音階のステップが2つの楽音のトーンの比率にますます近づく近似の平均律(オクターブの等分割)のリスト:完全な4th、4/3、およびその補数は完全な5th、3/2。 対称性により、完全な4分の1は問題ではないことに注意してください。 3がシーケンス内にあることを知っているとしましょう。3-TETの頻度は次のとおりです。 2^0, 2^⅓, 2^⅔ どこに2^⅔最も近い対数の近似が3/2。 シーケンスは4ですか?4-TETの頻度は次のとおりです。 2^0, 2^¼, 2^½, 2^¾ どこ2^½の最も近い近似値です3/2。これはに勝るもの2^⅔ではないので、4はシーケンスに含まれていません。 同様の方法で、5がシーケンス内にあることなどを確認します。 n入力として整数を指定する場合、出力は順序の最初のN個の数値でなければなりません。たとえば、の場合n = 7、出力は次のようになります。 1 2 3 5 7 12 29 xnorによるシーケンスの説明 無理数定数のlog2(3)≈1.5849625007211563…log2⁡(3)≈1.5849625007211563… \log_2(3) \approx 1.5849625007211563\dots有理分数の配列によって近似することができます。 21,32,53,85,117,1912,4629,…21,32,53,85,117,1912,4629,… \frac{2}{1}, \frac{3}{2}, \frac{5}{3}, \frac{8}{5}, \frac{11}{7}, \frac{19}{12}, \frac{46}{29}, \dots 分数は、絶対距離で新しい最も近いものである場合、シーケンスに含まれます∣∣pq−log2(3) ∣∣|pq−log2⁡(3) | \left| \frac{p}{q} - \log_2(3)\ \right|、つまり、分母が小さいか等しい他のどの分数よりも近い。 あなたの目標は、最初のnnn分母を順番に出力することです。これらはシーケンスA060528(表)です。分子(必須ではありません)は、A254351で指定されます(表) ルール: …

2
飛行機ブローアップ
ブローアップは、代数幾何学の強力なツールです。それはそれらの構造の残りを維持しながら代数的集合から特異点を取り除くことを可能にします。 心配していなくても、実際の計算を理解するのは難しくありません(以下を参照)。 以下では、2Dの代数曲線の点の拡大を検討しています。2Dの代数曲線は、2つの変数の多項式のゼロ軌跡によって与えられます(たとえば、単位円の場合は、または放物線)。その曲線()の爆発は、以下に定義する2つの多項式によって与えられます。とはどちらも、(可能な)特異点を削除してを記述します。(0,0)(0,0)(0,0)p(x,y)=x2+y2−1p(x,y)=x2+y2−1p(x,y) = x^2 + y^2 - 1p(x,y)=y−x2p(x,y)=y−x2p(x,y) = y-x^2(0 、0 )R 、S R S P (0 、0 )(0,0)(0,0)(0,0)r,sr,sr,srrrsssppp(0,0)(0,0)(0,0) チャレンジ いくつかの多項式与えられた場合、以下に定義されているようにとを見つけます。ppprrrsss 定義 まず、私がここで言うことはすべて簡略化されており、実際の定義に完全には対応していないことに注意してください。 2つの変数の多項式が与えられた場合、爆発は2つの変数の2つの多項式によってそれぞれ与えられます。pppx,yx,yx,yr,sr,sr,s を取得するには、まず定義します。その場合、はおそらく倍数になります。つまり、は、が除算しない場合です。次に、は基本的に除算後に残るものです。rrrR(x,v):=p(x,vx)R(x,v):=p(x,vx)R(x,v) := p(x,vx)R(x,v)R(x,v)R(x,v)xxxR(x,v)=xn⋅r(x,v)R(x,v)=xn⋅r(x,v)R(x,v) = x^n \cdot r(x,v)nnnxxxr(x,v)r(x,v)r(x,v)r(x,v)r(x,v)r(x,v) 他の多項式もまったく同じように定義されていますが、変数を切り替えます。最初にます。次にように定義される一部の分割しない。S(u,y):=p(uy,y)S(u,y):=p(uy,y)S(u,y) := p(uy,y)sssS(u,y)=ym⋅s(u,y)S(u,y)=ym⋅s(u,y)S(u,y) = y^m \cdot s(u,y)mmmyyys(u,y)s(u,y)s(u,y) より明確にするために、以下を検討してください 例 のゼロ軌跡によって与えられる曲線を考えます。(その点には明確に定義された接線がないため、特異点があります。)p(x,y)=y2−(1+x)x2p(x,y)=y2−(1+x)x2p(x,y) = y^2 - (1+x) x^2(0,0)(0,0)(0,0) 次に見つけます R(x,v)=p(x,vx)=v2x2−(1+x)x2=x2(v2−1−x)R(x,v)=p(x,vx)=v2x2−(1+x)x2=x2(v2−1−x)R(x,v) = …

4
あなたの言葉を比較検討してください!
チャレンジ 印刷可能なASCII文字(コード)で構成される、それぞれ30までの長さの2つの文字列が与えられた場合、それらをコードの最小バイトのバランススケールに配置します!これは次の手順で構成されます。[ 32 、126 ][32、126][32, 126] 文字列の重みを計算して比較する 適切に傾斜したASCIIアートスケールを選択する 二つの弦をはかりの上に置きます 文字列は、配列、2つの引数、またはその他の適切なメソッドとして渡されます。 文字列の重みは、その文字列の文字の重みの和として定義されます。 スペースのウェイトは0()です 小文字の重みは2(abcdefghijklmnopqrstuvwxyz)です 大文字の重みは4(ABCDEFGHIJKLMNOPQRSTUVWXYZ)です 他のすべての記号の重みは3(!"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~)です。 スケールは次のようになります。 。_ | _- * / \ |-* / \ _- * | / \ _- * | / \ / \ | * ------ * / \ | / \ | / \ | …

17
英数字のラインとカーブのカウント
入力文字列が与えられたら、それが持っている線と曲線の総数を出力するプログラムを書きます。 チャレンジ STDIN、またはその他の入力メソッドから入力を受け取ります。 出力STDOUT、または任意の他の出力方法、直線と曲線の総数は、文字列に含まれるこの順序でコードスニペットに、以下の表に基づいて、。 英数字以外の文字は無視してください。 標準の抜け穴は禁止されています。 これはcode-golfなので、最短のコードが優先されます。 明確化 線と曲線は、Stackexchange forで使用されるフォントによって決まりcode blocksます。 円(のようなO, o, 0)と点(i, j)は、それぞれ1つの曲線と見なされます。 文字列、文字のリスト、文字のストリーム、バイトコードなどを入力できます。 出力は、整数の配列などの整数、カンマ区切りの文字列のタプルことができ、二つの数が別々でなければならないので、104有効ではありません、しかし10,4、10 4、10\n4、[10,4]、(10, 4)、などです。 見出しと末尾の空白は完全に許容されます。 入力と出力の例 # Format: str -> line, curve hi -> 4, 2 HELLO WORLD -> 20, 4 l33+ 5pEak -> 13, 8 +=-_!...?~`g@#$%^ -> 1, 2 9001 -> 5, 3 O …

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