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

任意のデータの圧縮または解凍に関連しています。単一の特定の入力の圧縮に関連する課題は、代わりにタグ付けする必要があります[kolmogorov-complexity]

5
Boggle Board Compression
非パリンドロームポリグロットボグルで作業しているとき、2本の弦だけでも、可能な限り効率的にコードをボグルボードに詰め込むのは非常に面倒です。しかし、私たちはプログラマーですよね?物事を自動化する方法を知っています。 文字列のリストが与えられたら、それらの文字列のそれぞれが(他の文字とは独立して)見つかるBoggleボードを生成します。課題は、Boggleボードをできるだけ小さくすることです。これは(願わくば)かなり難しいタスクであるため、これはコードチャレンジです。最適性の要件はありません-できる限りそれを行うことが課題です。 ルール Boggleボードは長方形で、大文字のみが含まれます。したがって、入力文字列には大文字のみが含まれます。 通常のBoggleルールが適用されます。文字列は、どこからでも、隣接する文字(水平、垂直、または斜め)に繰り返し移動して文字列を見つけることができる場合、ボードの一部です。単一の文字列を形成するには、ボードのセルを複数回使用することはできません。ただし、異なる文字列間で文字が再利用される場合があります。 テストデータを処理するのに30分かかり、コードで4 GBを超えるメモリを使用してはなりません。メモリーの制限については少し余裕を持たせますが、プログラムが一貫して4 GBを超えるか、それを大幅に上回るスパイクを使用する場合は、(一時的に)失格させます。 Windows 8を実行している自分のマシンですべての提出物をテストします。UbuntuVMがありますが、テストする必要がある場合は、30分を他の方法で使用することはできません。選択した言語の無料のインタープリター/コンパイラーへのリンクと、コードのコンパイル/実行方法に関する指示を含めてください。 スコアは、以下のテストデータ用のBoggleボードのサイズになります(改行はカウントしません)。同点の場合(たとえば、複数の人が最適なソリューションを作成できたため)、勝者はこの最適なソリューションをより迅速に作成する提出物になります。 テストデータに対してコードを最適化しないでください。誰かがそうする疑いがある場合、私は新しいテストデータを生成する権利を留保します。 例 与えられた文字列 FOO BAR BOOM かつては4x3 Boggleボードに簡単に入れることができました。 FOOX BARX BOOM 文字列が直線である必要がないという事実を利用することで、5x2に圧縮できます。 BORFO OMABO ただし、異なる文字列間で文字を再利用することでさらに小さくし、文字列を4x2に収めることができます。 FOOM BARX 今Bの両方に使用されるBOOMとBAR、そしてOO両方のために使用されているBOOMとFOO。 テストデータ 提出物は、次の50個の文字列でテストされます。テストのために、このデータのより小さなサブセットを使用するだけで、より短時間で実行できます。このテストデータの絶対的な下限は120文字のボードですが、これは必ずしも達成できるとは限りません。 T WP GVI CIHM EGWIV QUTYFZ LWJVPNG XJMJQWSW JLPNHFDUW SWMHBBZWUG XVDBMDQWDEV TIUGAVZVUECC IWDICFWBPSPQR MMNWFBGMEXMSPY YIHYXGJXKOUOIZA BZSANEJNJWWNUJLJ XTRMGOVPHVZYLLKKG FLXFVVHNTWLMRRQYFQ VZKJRAFQIYSBSXORTSH …

2
レプトン圧縮を阻止する
Dropboxは最近、レプトン(GitHub)をリリースしました。これは、往復でJPEG画像を無損失で圧縮し、平均22%を節約する方法です。 そのための鳩の巣原理、任意の一般的な圧縮アルゴリズムをすることはできません保証(小さいファイルをもたらすために、一般的には、特定の形式に制約の入力には適用されないため)。LeptonはJPEGに関する一般的な特性を利用します。JPEGは、破壊された場合、ソースよりも大きいファイルを生成するためにそれをピジョンホールする可能性があります。 必要条件 以下を生成するプログラムを作成します。 有効なJPEG / JFIF画像、 0.5 MB〜1 MBのサイズで、 256×256 px以上 4096×4096 px以下 レプトンが認識できる(.lep画像に正常に「圧縮」できる) (入力として)同一に 解凍し.jpgます。 APPx、COMおよびその他のメタデータ、非グラフィックマーカーセクションはJPEGで制限されています(ランダムな量の任意のバイトを画像に注入して、1:1圧縮に漸近的に近づくことは不十分です)。 APP0JFIFマーカーは(正確に16バイトでなければならない)、許可されているが、サムネイルが許可されません tl; dr意図的にメタデータをEXIFセグメントに押し込んでおらず、選択した言語ライブラリが画像に配置したいサムネイルを無効にしている場合、それは問題ありません。 コードと画像を投稿してください。 変換すると基準を満たすJPEG が生成されるLeptonイメージを生成するプログラムを作成する場合は、問題ありません。任意の多くのJPEG→Lepton→JPEG→...サイクルにわたって同一のままでなければなりません。 得点 ソースJPEG画像で割ったレプトン画像のバイトサイズ。高い(レプトン圧縮が悪い)ほど優れています。デフォルトのフラグとスイッチでレプトンを実行します。 レプトンを取得する レプトンを構築する5秒間のクラッシュコース: git clone https://github.com/dropbox/lepton.git cd lepton ./autogen.sh && ./configure && make # fish shell: ./autogen.sh ;and ./configure ;and make その後./lepton --help、あなたに物事を伝える必要があります。

2
独占圧縮
プレイヤーのターンの開始時にモノポリーのゲームの現在の状態を表す文字列が与えられた場合、必要なすべてのデータを最小の出力に圧縮します。回答は、出力サイズとソースサイズによって判断されます。 注:地域ごとにさまざまなバリエーションがありますが、この投稿のプロパティ名などへの参照はすべてこの掲示板に基づいています。 入力: 入力は、単一の;分離された文字列として与えられます。この文字列は、標準入力、引数など、選択した言語で慣習的な方法でプログラムに与えられます。 書式なし入力は次のようになります。 numPlayers (1 to 8) whose turn (0 to numPlayers-1) for each player: bankrupt? (true/false) money (0 to 2^16-1) get-out-of-jail-free cards (0 to 2) position (0 to 39) jail turns (-1 to 2) for 28 properties: owner (-1 to numPlayers-1) mortgaged? (true/false) improvement level (0 to …

7
宇宙電話をかける
宇宙の呼び出しが説明するようそれは、23枚の127 * 127pxモノクロビットマップ画像で作られている1999年と2003年に宇宙へ送られたメッセージであるここに。 あなたの使命は、127 * 2921pxメッセージ全体をテキスト(ゼロ、1、改行で構成される)または画像(画面に描画されるかディスクに保存される)として表示するプログラムを作成することです。受賞者には、テキスト出力用と画像出力用の2つのカテゴリがあります。 一般的な抜け穴を除き、すべてのトリックが許可されます。 23ページを個別に出力できます。 最大23のプログラム(各ページに1つなど)を作成し、そのサイズを合計してスコアを決定することができます。 プログラムと共に最大23個のバイナリファイルを使用できます。彼らの体重はあなたのスコアにカウントされます。 最短のコード(バイト単位)が優先されます。 ピクセルあたり1ビットで、画像には127 * 127 * 23/8 = 46370バイト+ 7ビットのデータが含まれます。(警告:ピクセル値を46371バイトに格納する場合、余分なゼロを出力することはできません) テキスト出力には末尾の改行/スペースを使用できます。 ビジュアル出力には、宇宙コールの黒ピクセル以外の黒ピクセルを含めることはできません。1列に描画する(正しく並べ替える)か、23個の画像に分割するか、アニメーション(gifのように)することもできます。 添付ファイル:テキスト出力、および再現する画像出力:

4
パリンドローム圧縮
チャレンジ ASCIIテキストを無損失で圧縮および圧縮解除するプログラムを作成します。大文字と小文字を区別しない、句読点と区別しないパリンドロームなど、パリンドロームとうまく機能するように専門化する必要があります。最小のソースで最高の圧縮が優先されます。 得点 total_bytes_saved / sqrt(program_size) -最高得点 total_bytes_saved圧縮された文字列が元の文字列よりも小さいバイト数で、以下のテストケース全体で合計です。program_size圧縮プログラムと解凍プログラムの両方のソースコードのバイト単位のサイズです。2つの間で共有されるコードは1回だけカウントする必要があります。 たとえば、10個のテストケースがあり、100バイトのプログラムが7個のテストケースで5バイト(2個ずつ10個)を保存したが、最後のテストケースが2バイト長かった場合、ソリューションのスコアは5.3になります。((7 * 5 + 10 * 2 - 2) / sqrt(100) = 5.3) テストケース tacocat toohottohoot todderasesareddot amanaplanacanalpanama wasitacaroracatisaw? Bob IManAmRegalAGermanAmI DogeeseseeGod A Santa at NASA Go hang a salami! I'm a lasagna hog. ルール 標準の抜け穴が適用されます。 圧縮は、回文だけでなく、印刷可能なすべてのASCII(32〜126バイトを含む)テキスト文字列で機能する必要があります。ただし、実際には入力のためのスペースを節約する必要はありません。 出力は、その実装または内部表現に関係なく、バイトまたは文字の任意のシーケンスにすることができます(たとえば、文字列、リスト、および配列はすべて公平なゲームです)。UTF-8にエンコードする場合、文字ではなくバイトをカウントします。ワイド文字列(UTF-16またはUTF-32など)は、使用される可能性のあるコードポイントが0〜255の間でなければ許可されません。 圧縮/解凍ビルトインは許可されていません。 私たち自身の楽しみのために、ソースコードとともに圧縮された文字列を投稿してください。 更新1:スコアリングをからtotal_bytes_saved / …

3
バロウズ、ホイーラー、バック
バックグラウンド バローズ-ウィーラー変換(BWT)のようなプレーンテキストとして文字列の特定の種類の類似文字の大実験における結果は、文字列の文字の可逆的置換です。たとえば、bzip2圧縮アルゴリズムで使用されます。 BWTは次のように定義されます。 などの入力文字列が与えられた場合、codegolf可能なすべての回転を計算し、辞書式順序で並べ替えます。 codegolf degolfco egolfcod fcodegol golfcode lfcodego odegolfc olfcodeg 文字列のBWTは、codegolf各文字列の最後の文字がその順序で構成されている文字列、つまり上のブロックの最後の列です。のためcodegolf、これはをもたらしfodleocgます。 文字列codegolfとgolfcode結果は同じ文字列になるため、この変換自体は可逆的ではありません。ただし、文字列がで終わることがわかっている場合f、可能なプレイメージは1つだけです。 仕事 STDINから、またはコマンドラインまたは関数の引数として単一の文字列を読み取り、BWTまたはその入力文字列の逆数を出力または返す、複雑なプログラムまたは関数を実装します。 入力文字列にスペースが含まれていない場合、サブミッションは入力に単一のスペースを追加し、BWTを計算する必要があります。 入力文字列にすでにスペースが含まれている場合、後続のスペースがあるBWTのプリイメージを計算し、そのスペースを削除する必要があります。 例 INPUT: ProgrammingPuzzles&CodeGolf OUTPUT: fs&e grodllnomzomaiCrGgPePzu INPUT: fs&e grodllnomzomaiCrGgPePzu OUTPUT: ProgrammingPuzzles&CodeGolf INPUT: bt4{2UK<({ZyJ>LqQQDL6!d,@:~L"#Da\6%EYp%y_{ed2GNmF"1<PkB3tFbyk@u0#^UZ<52-@bw@n%m5xge2w0HeoM#4zaT:OrI1I<|f#jy`V9tGZA5su*b7X:Xn%L|9MX@\2W_NwQ^)2Yc*1b7W<^iY2i2Kr[mB;,c>^}Z]>kT6_c(4}hIJAR~x^HW?l1+^5\VW'\)`h{6:TZ)^#lJyH|J2Jzn=V6cyp&eXo4]el1W`AQpHCCYpc;5Tu@$[P?)_a?-RV82[):[@94{*#!;m8k"LXT~5EYyD<z=n`Gfn/;%}did\fw+/AzVuz]7^N%vm1lJ)PK*-]H~I5ixZ1*Cn]k%dxiQ!UR48<U/fbT\P(!z5l<AefL=q"mx_%C:2=w3rrIL|nghm1i\;Ho7q+44D<74y/l/A)-R5zJx@(h8~KK1H6v/{N8nB)vPgI$\WI;%,DY<#fz>is"eB(/gvvP{7q*$M4@U,AhX=JmZ}L^%*uv=#L#S|4D#< OUTPUT: <#Q6(LFksq*MD"=L0<f^*@I^;_6nknNp;pWPBc@<A^[JZ?\B{qKc1u%wq1dU%;2)?*nl+U(yvuwZl"KIl*mm5:dJi{\)8YewB+RM|4o7#9t(<~;^IzAmRL\{TVH<bb]{oV4mNh@|VCT6X)@I/Bc\!#YKZDl18WDIvXnzL2Jcz]PaWux[,4X-wk/Z`J<,/enkm%HC*44yQ,#%5mt2t`1p^0;y]gr~W1hrl|yI=zl2PKU~2~#Df"}>%Io$9^{G_:\[)v<viQqwAU--A#ka:b5X@<2!^=R`\zV7H\217hML:eiD2ECETxUG}{m2:$r'@aiT5$dzZ-4n)LQ+x7#<>xW)6yWny)_zD1*f @F_Yp,6!ei}%g"&{A]H|e/G\#Pxn/(}Ag`2x^1d>5#8]yP>/?e51#hv%;[NJ"X@fz8C=|XHeYyQY=77LOrK3i5b39s@T*V6u)v%gf2=bNJi~m5d4YJZ%jbc!<f5Au4J44hP/(_SLH<LZ^%4TH8:R INPUT: <#Q6(LFksq*MD"=L0<f^*@I^;_6nknNp;pWPBc@<A^[JZ?\B{qKc1u%wq1dU%;2)?*nl+U(yvuwZl"KIl*mm5:dJi{\)8YewB+RM|4o7#9t(<~;^IzAmRL\{TVH<bb]{oV4mNh@|VCT6X)@I/Bc\!#YKZDl18WDIvXnzL2Jcz]PaWux[,4X-wk/Z`J<,/enkm%HC*44yQ,#%5mt2t`1p^0;y]gr~W1hrl|yI=zl2PKU~2~#Df"}>%Io$9^{G_:\[)v<viQqwAU--A#ka:b5X@<2!^=R`\zV7H\217hML:eiD2ECETxUG}{m2:$r'@aiT5$dzZ-4n)LQ+x7#<>xW)6yWny)_zD1*f @F_Yp,6!ei}%g"&{A]H|e/G\#Pxn/(}Ag`2x^1d>5#8]yP>/?e51#hv%;[NJ"X@fz8C=|XHeYyQY=77LOrK3i5b39s@T*V6u)v%gf2=bNJi~m5d4YJZ%jbc!<f5Au4J44hP/(_SLH<LZ^%4TH8:R OUTPUT: bt4{2UK<({ZyJ>LqQQDL6!d,@:~L"#Da\6%EYp%y_{ed2GNmF"1<PkB3tFbyk@u0#^UZ<52-@bw@n%m5xge2w0HeoM#4zaT:OrI1I<|f#jy`V9tGZA5su*b7X:Xn%L|9MX@\2W_NwQ^)2Yc*1b7W<^iY2i2Kr[mB;,c>^}Z]>kT6_c(4}hIJAR~x^HW?l1+^5\VW'\)`h{6:TZ)^#lJyH|J2Jzn=V6cyp&eXo4]el1W`AQpHCCYpc;5Tu@$[P?)_a?-RV82[):[@94{*#!;m8k"LXT~5EYyD<z=n`Gfn/;%}did\fw+/AzVuz]7^N%vm1lJ)PK*-]H~I5ixZ1*Cn]k%dxiQ!UR48<U/fbT\P(!z5l<AefL=q"mx_%C:2=w3rrIL|nghm1i\;Ho7q+44D<74y/l/A)-R5zJx@(h8~KK1H6v/{N8nB)vPgI$\WI;%,DY<#fz>is"eB(/gvvP{7q*$M4@U,AhX=JmZ}L^%*uv=#L#S|4D#< INPUT: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa OUTPUT: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa INPUT: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa OUTPUT: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 追加のルール …

1
カニンガムチェーンのカウント
素数は常に人々を魅了してきました。2300年前、ユークリッドは彼の「要素」に書いた 素数とは、単位だけで測定されるものです。 つまり、素数は1(またはそれ自体で)割り切れるだけです。 人々は常に素数間の関係を探しており、(「面白い」のような)かなり奇妙なものを思いついてきました。 たとえば、Sophie Germainプライムは、プライムpで2*p+1もあるプライムです。 安全素数は素数であるpそのため(p-1)/2正確ソフィー・ジェルマン素数の下位条件である、また、素数です。 これらは、この課題で私たちが探しているものに関連しています。 A カニンガムチェーンタイプの私は最後のものを除くすべての要素がある素数のシリーズです、ソフィー・ジェルマン素数と、最初のものを除くすべての要素がある安全素数。このチェーンの要素の数は、その長さと呼ばれます。 これは、プライムから始めてp計算することを意味しますq=2*p+1。qが素数である場合、長さ2のタイプIの Cunnighamチェーンがあります。次に2*q+1、次の生成された数が合成されるまでテストなどを行います。 タイプIIのカニンガムチェーンは、ほぼ同じ原理に従って構築されますが、唯一の違い2*p-1は各段階で確認することです。 Cunninghamチェーンの長さは1です。つまり、2 * p + 1も2 * p-1も素数ではありません。これらには興味がありません。 カニンガムチェーンの例 2長さ5のタイプIのチェーンを開始します。 2, 5, 11, 23, 47 次に構築される数95は、素数ではありません。 これはまた、以下のことを教えてくれる5、11、23および47タイプのいずれかのチェーンを開始していない私を、それが要素に先行する必要があるため、。 2また、長さ3のタイプIIのチェーンを開始します。 2, 3, 5 次はで9、これは素数ではありません。 11タイプIIを試してみましょう(以前にタイプIから除外しました)。 さて、21次は、素数ではないので、この「チェーン」の長さは1になりますが、このチャレンジではカウントしません。 チャレンジ n入力として数値を指定すると、少なくとも長さ2のタイプIまたはIIのn番目のカニンガムチェーンの開始番号を書き込み/返すプログラムまたは関数を記述し、その後にスペース、それに続くチェーンのタイプ(IまたはII)、その後にコロン、その後にそのタイプのチェーンの長さが続きます。プライムが両方のタイプのチェーン(タイプI およびタイプII)を開始する場合、タイプI のチェーンが最初にカウントされます。 例: 2 I:5 nこれは、以前に開始された任意のタイプのチェーンの一部である可能性があることに留意してください。その場合、そのタイプのチェーンの開始番号と見なされるべきではありません。 これがどのように始まるのか見てみましょう から始め2ます。これは最初の素数であるため、を含む下位の素数で始まるチェーンがないことを確認できます2。 タイプIのチェーン内の次の数は次のようになります2*2+1 == 5。5素数なので、少なくとも長さ2のチェーンが既にあります。 これを最初のチェーンとしてカウントします。タイプIIはどうですか?次の番号はになります2*2-1 …

4
bzip2のランレングスエンコーディングを実装する
バックグラウンド BWT(Burrows、Wheeler、Backで見られる)とMTF(Move to the printable ASCII frontで見られる)を適用した後、bzip2コンプレッサーはかなりユニークな形式のランレングスエンコーディングを適用します。 定義 この課題のために、変換BRLEを次のように定義します。 0x20〜0x7Aのコードポイントを持つASCII文字のみで構成される入力文字列sを指定して、次の操作を行います。 等しい文字の各実行をその文字の1回の出現で置き換え、最初の文字以降の繰り返し回数を保存します。 繰り返し数を符号化文字の最初の発生の後に使用して、全単射ベース2記数や記号{などを}。 非負整数nは文字列として符号化されたB K ... B 0ように、N = 2 K I(BのK)+ ... + 2 0、I(B 0)、I({)= 1とI(})= 2。 この表現は常に一意であることに注意してください。たとえば、数値0は空の文字列としてエンコードされます。 対応する文字が1回出現した後、繰り返し回数をエンコードする中括弧の文字列を挿入します。 ステップバイステップの例 Input: "abbcccddddeeeeeffffffggggggghhhhhhhh" Step 1: "abcdefgh" with repetitions 0, 1, 2, 3, 4, 5, 6, 7 Step 2: "" "{" …

4
算術式を使用して特定の大きな整数を表現するための戦略
特定の数を念頭に置いていますが、それは私がしている挑戦の一部です。 以下は、同じ数字ですがシャッフルされた数字です。 5713167915926167134578399473447223554460066674314639815391281352328315313091488448321843 8892917486601064146636679920143691047671721184150386045081532202458651561779976236919751 5521854951599379666116678853267398393892536121049731949764192014193648608210652358947001 6332620900065461061195026191178967128001712341637591690941978871368243245270800684616029 6679555942849366434586090627998161441134473428845367022486230724219981658438108844675033 4461550796750244527407413996606134735852639191026103378962082622204359677030054592798927 4145951979523473408718011778751084514127053772614511042703365596651912104541233491744530 87457854312602843967491787086250478422477028164189 数字は666桁(10進数)です。Pythonを使用しているため、整数(または技術的に長い)は自動的にbignumです。 使用する255文字があり、同じ番号を記述する必要があります。説明は、元の数値を生成するためにeval()を実行することを意図しています。 どの戦略を検討すべきですか?

3
Brainfuckのビット演算子
あなたの仕事は、以下の二項演算子のそれぞれに対して1つのBrainfuckプログラムを作成することです。各プログラムは、入力から1つまたは2つの8ビット数(AおよびB)を取得し、指定された操作を計算する必要があります。 A XOR B A AND B A OR B A Shifted Left by 1 (circular shift) NOT A 5つすべてを実装する必要はありません。スコアは次の方法で計算されます。 #totalCharacters + {4000 * #problemsNotCompleted} したがって、有効なスコアはゼロ(最高)から20,000(何も完了していない)までです。 結果を保存する場所や、入力を保存するかどうかは気にしません。8ビットセル、および必要なだけの空のセルを右側にのみ想定します。 最適なメモリ位置に番号がすでにあると仮定することができるので、IO操作を心配する必要はありません。
13 code-golf  binary  brainfuck  code-golf  code-golf  ascii-art  random  code-golf  code-golf  code-challenge  sorting  code-golf  code-challenge  java  code-golf  statistics  code-golf  code-challenge  fastest-code  code-golf  math  code-golf  math  kolmogorov-complexity  code-golf  code-golf  array-manipulation  combinatorics  code-golf  kolmogorov-complexity  popularity-contest  underhanded  code-golf  math  floating-point  code-golf  interpreter  code-golf  music  code-golf  code-golf  cryptography  code-challenge  scrabble  code-golf  code-challenge  popularity-contest  quine  code-golf  quine  cryptography  code-golf  kolmogorov-complexity  code-golf  printable-ascii  code-golf  chess  code-golf  math  number-theory  code-challenge  c  code-golf  random  popularity-contest  hello-world  code-shuffleboard  code-golf  compression  grammars  code-golf  tips  code-golf  sequence  code-golf  string  code-challenge  sorting  permutations  code-golf  string  code-challenge  optimization  code-golf  interpreter  code-challenge  string  code-golf  math  number  fibonacci  string  compression  c#  code-golf  chemistry  popularity-contest  math  c  c++  java  code-golf  math  function  code-golf  complex-numbers  code-golf  geometry 

2
圧縮率が最も低い画像を作成する
「写真は千の言葉に値する」-それで、古いことわざは言う。平均的な単語の長さは約4文字なので、写真は4kBの情報を伝えます。しかし、情報ではなく、どのくらいのエントロピーが絵で伝えることができますか? あなたの仕事は、可能な限り最高のエントロピーで、サイズがちょうど4,000バイトのイメージを生成することです。選択した任意の言語、ライブラリ、または画像形式を使用でき、ここに画像をアップロードする限り、コンソールまたはファイルに出力できます。 得点 スコアは、DEFLATEアルゴリズムとデフォルト設定(具体的にはcommand)を使用して、GNU tarバージョン1.28およびgzipバージョン1.6で画像を圧縮した場合の圧縮率(4000÷圧縮サイズ)ですtar -czvf out.tar.gz image。最小の圧縮率が優先されます。

14
ファイルにゼロを埋め込む
今日のタスクは、既存のファイルを取得し、特定のサイズに達するまでゼロを追加することです。 現在のディレクトリ内のファイル名fとバイト数を取得するプログラムまたは関数を作成する必要がありますb。の元のコンテンツを維持しながら、新しいサイズがバイトになるように、末尾にfゼロ(ASCIIバイトではなくヌルバイト)を書き込む必要がありbます。 あなたは、と仮定してよいfことは、当初よりも大きくないと、あなたはそれを完全なアクセス許可を持っていることを、その名前だけでASCII英数字を持っていbますが、同じ大きようなものであってもよいb、と無限の空きディスク容量があること。 f空でないと仮定したり、すでにヌルバイトが含まれていないと仮定したりすることはできません。 実行が終了した後、他の既存のファイルを変更したり、新しいファイルを作成したりしないでください。 テストケース fの内容| b | fの結果の内容 12345 | 10 | 1234500000 0 | 3 | 000 [空] | 2 | 00 [空] | 0 | [空の] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

5
URL短縮サービスを実装する
URLが長すぎます。そのため、URLを短縮するアルゴリズムを実装する必要があります。 私。URLの構造 URLには、ドメインとパスの 2つの主要部分があります。ドメインは、URLの最初のスラッシュの前の部分です。URLにプロトコルが含まれていないと想定できます。パスは他のすべてです。 ii。ドメイン URLのドメインは次のようになりますxkcd.com meta.codegolf.stackexcchhannnge.cooom。各パートは、ピリオドで区切られています。たとえば、blag.xkcd.comでは、パートは「blag」、「xkcd」、および「com」です。これはあなたがそれで何をするかです: 3つ以上の部分が含まれている場合は、最後の2つを脇に置き、残りの部分の最初の文字を連結します。 次に、それを最初の文字と最後から2番目の部分に連結します。 ピリオドと、最後から2番目の部分の2番目と3番目の文字を追加します。 最後の部分を破棄します。 iii。パス パスは次のようになります/questions/2140/ /1407/。前と同様に、「パーツ」はスラッシュで区切られています。パス内の各部分について、次を実行します。 スラッシュを追加 完全に10進数で構成されている場合は、数値として解釈し、36進数の整数に変換します。 それ以外の場合は、パーツの最初の文字を追加します。 最後に、スラッシュを追加します。 iv。その他 これはcode-golfなので、最短のコードが優先されます。 パスは空でもかまいませんが、URLは常にスラッシュで終わります。 プロトコルが存在することはありません(例えばhttp://、file:///) ドメイン内の部分が2つ未満になることはありません。 標準の抜け穴が適用されます。 例 In:xkcd.com/72/ Out:x.kc/20/ In:math.stackexchange.com/a/2231/ Out:ms.ta/a/1pz/ In:hello.org/somecoolcodeintrepreteriijjkk?code=3g3fzsdg32,g2/ Out:h.el/s/

1
ロスレス英語テキスト圧縮チャレンジ[終了]
閉じた。この質問には、詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 4年前に閉鎖されました。 チャレンジ: あなたの挑戦(受け入れることを選択した場合)は、ここにある5MBの「ウィリアムシェークスピアの全集」を圧縮および解凍することです:http : //www.gutenberg.org/cache/epub/100/pg100.txt (MD5: a810f89e9f8e213aebd06b9f8c5157d8) ルール: あなたはしなければならない介して入力を取るSTDIN経由して出力STDOUT ... ...そして、入力に同一の解凍結果を提供する必要があります。 (これは、上記と同じ MD5を取得できなければならないということです。)cat inpt.txt | ./cmprss | ./dcmpress | md5 (経由するものSTDERRはすべて破棄されます。) 合計ソースコードには2048文字未満を使用する必要があります。 (これはコードゴルフではありません。ソースコードの長さに基づいて得点を得ているわけではありません。これは物事を有限に保つための単なるルールでした。) (分割した場合は、すべてのソースコードを連結した長さを取ります。) 君は 必要ありますすぎて(理論上)のプロセスと同様のプレーンテキスト入力にできること。 (例えば、提供されたシェークスピアのみを出力できるメカニズムをハードコーディングする入力は受け入れられません。) (他の文書の圧縮サイズは無関係です-圧縮解除された結果が代替入力と同一である場合。) あなたは言語のいずれかを選択(複数可)を使用します。 (例:を使用して圧縮しawkたり、を使用して解凍したりすることをお気軽にjava) あなたは下さい二つの別々のプログラムを書くかのように「スイッチ」の何らかの形でそれらを結合します。 (圧縮モードと解凍モードの両方を呼び出す方法の明確なデモが必要です) 外部コマンドは使用できません(例:exec())。 (シェル言語を使用している場合-申し訳ありません。ビルトインで間に合わせる必要があります。共有と楽しみのために「受け入れられない」答えを投稿することはできますが、判断はできません! ) データを圧縮することを目的とする組み込み関数またはライブラリが提供する関数を使用することはできません(たとえば、gzなど) (エンコードの変更は、このコンテキストでは圧縮とは見なされません。ここでは、何らかの裁量が適用される場合があります。提出物でのソリューションの許容性については、お気軽に議論してください。) 参加することを選んだら、楽しんでみてください! すべての良い競争には、勝利という客観的な定義があります。エルゴ: すべてのルールが順守されている場合、最小の圧縮出力(STDOUTバイト単位)ます。 (を介して出力を報告してください./cmprss | wc -c) 抽選(同一の出力サイズ)の場合、最も多くのコミュニティが投票します。 2回目の抽選(同一コミュニティのアップ投票)のイベントでは、優雅さと純粋な天才の完全に主観的な検査に基づいて勝者を選びます。 ;-) 提出方法: …

1
有効な迷路の数
与えられたWxHグリッドを、どのように多くの可能な迷路がありますか? 迷路について知っていること: グリッドのH高さは正確に正方形で、W幅は正方形です。 開始、終了、空の3つのタイプの正方形があります。迷路には、開始と終了がそれぞれ1つだけ含まれている必要があり、残りのすべての正方形は空です。 迷路全体を囲む壁があります。 以下の規則に違反しない限り、壁は任意の2つの正方形の間のエッジに存在できます。 開始広場から終了広場までのパスが存在する必要があります。 したがって、との2つの数値を指定するWとH、可能な正方形/壁構成の数を表す単一の数値を返す必要があります。あなたは保証されていますW*H > 1 たとえば、2x2迷路の100構成はまったく異なります。 これはコードゴルフなので、最短の答えが勝ちです!

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