タグ付けされた質問 「image-processing」

これらの課題には、既存の画像ファイルを何らかの方法で変更したり、統計を収集したり、その他の画像処理タスクを実行したりすることによる処理が含まれます。

5
これは自己参照の問題です
タッパーの自己参照式(Wikipediaからコピー) Tupperの自己参照式は、Jeff Tupperによって定義された式であり、平面内の非常に特定の場所で2次元でグラフ化すると、式自体を視覚的に再現するように「プログラム」できます。数式のグラフ化の演習として、さまざまな数学およびコンピューターサイエンスのコースで使用されます。 フロア機能はどこに ありますか。 をk次の543桁の数字にします。 960939379918958884971672962127852754715004339660129306651505519271702802395266424689642842174350718121267153782770623355993237280874144307891325963941337723487857735749823926629715517173716995165232890538221612403238855866184013235585136048828693337902491454229288667081096184496091705183454067827731551705405381627380967602565625016981482083418783163849115590225610003652351370343874461848378737238198224849863465033159410054974700593138339226497249461751545728366702369745461014655997933798537483143786841806593422227898388722980000748404719 1つのグラフの点の設定した場合(x, y)で0 <= x < 106且つk <= y < k + 17上記の不等式を満足する、このように得られたグラフの外観(このプロットで軸が反転していることに注意してくださいが、そうでなければ画像が逆さまに出てきます)。 だから何? この式の興味深い点は、可能な106x17の白黒画像をグラフ化するために使用できることです。現在、実際に検索して検索するのは非常に面倒なので、画像が表示されるk値を把握する方法があります。プロセスは非常に簡単です。 画像の最初の列の下のピクセルから始めます。 ピクセルが白の場合、k値に0が追加されます。黒の場合は、1を追加します。 ステップ2を繰り返して、列を上に移動します。 列の最後で、次の列に移動し、同じプロセスに従って下から始めます。 各ピクセルを分析した後、このバイナリ文字列を10進数に変換し、17を掛けてk値を取得します。 私の仕事は何ですか? あなたの仕事は、106x17の画像を取り込み、対応するk値を出力できるプログラムを作成することです。次のことを想定できます。 すべての画像は正確に106x17です すべての画像には黒(#000000)または白(#FFFFFF)ピクセルのみが含まれ、その間には何もありません。 いくつかのルールもあります。 出力は単にk値です。適切なベースにする必要がありますが、任意の形式にすることができます。 画像はPNGまたはPPMから読み取る必要があります。 標準的な抜け穴はありません。 テスト画像 [ ]は、〜1.4946x10 542を生成するはずです [ ]は〜7.2355x10 159を生成するはずです [ ]は2 1801 * 17を生成します [ ]は(2 1802 -1)* …

3
コンピューター生成のテクスチャ壁ペイント
私の部屋の壁の絵の具は、ランダムで、ほとんどフラクタルのような、3次元のテクスチャーです。 このチャレンジでは、私の壁の一部になりそうなランダム画像を生成するプログラムを作成します。 以下では、壁のさまざまなスポットの画像を10個収集しました。すべての照明はほぼ同じで、カメラは壁から1フィート離れた場所で撮影されました。境界線を均​​等にトリミングして2048 x 2048ピクセルにし、512 x 512にスケーリングしました。上の画像は画像Aです。 これらはサムネイルのみです。画像をクリックするとフルサイズで表示されます。 A: B:C:D:E: F: G:H:I:J: あなたの仕事は、1〜2 16の正の整数をランダムシードとして取り込むプログラムを作成し、各値に対して、壁の「11番目の画像」であるかのように見える個別の画像を生成することです。私の10枚の画像とあなたの数枚の画像を見ている人が、どちらがコンピュータで生成されたのかわからない場合、あなたは非常にうまくやった! 視聴者がコードを実行せずにそれらを見ることができるように、生成された画像のいくつかを披露してください。 私の画像の照明は、強度や色が完全に均一ではないことがわかります。申し訳ありませんが、より良い照明器具なしでできる最高の方法です。画像に可変照明を使用する必要はありません(可能ですが)。テクスチャは、焦点を当てるより重要なものです。 詳細 画像処理ツールとライブラリを使用できます。 任意の一般的な方法(コマンドライン、標準入力、明らかな変数など)で入力を取得します。 出力画像は、一般的なロスレス画像ファイル形式にすることも、ウィンドウ/クッパに表示することもできます。 私の10個の画像をプログラムで分析できますが、コードを実行している全員がそれらの画像にアクセスできると想定しないでください。 プログラムでイメージを生成する必要があります。私の画像の1つまたは他のストック画像のわずかな変形をハードコードすることはできません。(とにかく人々はこれに賛成票を投じるでしょう。) 組み込みの疑似乱数ジェネレーターを使用して、期間が2 16以上であると想定できます。 得点 これは人気コンテストなので、最も投票数の多い回答が勝ちます。

4
ロスレススクリーンショットリサイズが必要な場合があります
コード内の単なるコメントよりも多くのドキュメントを書く必要がある場合があります。そして時々、それらの説明にはスクリーンショットが必要です。時々、そのようなスクリーンショットを取得する条件が非常に奇妙なため、開発者にスクリーンショットを撮ってほしいと頼みます。スクリーンショットが仕様に合わない場合があり、見た目がよくなるようにサイズを変更する必要があります。 ご覧のとおり、魔法の「Lossless Screenshot Resizer」が必要になる状況はほとんどありません。とにかく、私にとっては毎日必要なようです。しかし、まだ存在していません。 PCGで素晴らしいグラフィカルパズルを解く前にここであなたを見たことがあります。 仕様 プログラムは、入力として単一のウィンドウのスクリーンショットを取ります スクリーンショットは、ガラス効果などを使用していません(したがって、背景を通して光るようなものを扱う必要はありません) 入力ファイル形式はPNG(または圧縮アーティファクトを処理する必要がないように他のロスレス形式) 出力ファイル形式は入力ファイル形式と同じです プログラムは、出力として異なるサイズのスクリーンショットを作成します。最小要件はサイズの縮小です。 ユーザーは、予想される出力サイズを指定する必要があります。与えられた入力からプログラムが生成できる最小サイズについてのヒントを与えることができれば、それは役に立ちます。 出力スクリーンショットは、人間が解釈する場合、より少ない情報を含んではいけません。テキストや画像のコンテンツを削除することはできませんが、背景のみの領域を削除する必要があります。以下の例を参照してください。 予想されるサイズを取得できない場合、プログラムはそれを表示し、単に通知することなく情報を単にクラッシュまたは削除するべきではありません。 検証のために削除される領域がプログラムに示されている場合、その人気が高まるはずです。 プログラムには、最適化の開始点を識別するためなど、他のユーザー入力が必要になる場合があります。 ルール これは人気コンテストです。2015-03-08の投票数が最も多い回答が受け入れられます。 例 Windows XPのスクリーンショット。元のサイズ:1003x685ピクセル。 情報(テキストまたは画像)を失わずに削除できる領域の例(赤:垂直、黄色:水平)。赤いバーは連続していないことに注意してください。この例は、潜在的に削除される可能性のあるすべてのピクセルを示しているわけではありません。 ロスレスにサイズ変更:783x424ピクセル。 Windows 10スクリーンショット。元のサイズ:999x593ピクセル。 削除できるエリアの例。 ロスレスにサイズ変更されたスクリーンショット:689x320ピクセル。 タイトルテキスト(「ダウンロード」)と「このフォルダーは空です」が中央に配置されていなくてもかまいません。もちろん、それが中央にあればより良いでしょうし、あなたのソリューションがそれを提供するなら、それはより一般的になるでしょう。

4
コンピューター生成のひびの入った土
0から65535(2 16 -1)までの整数を取り込んで、ひび割れた土のこれらの6つの実生活の画像に可能な限り類似したユニークな 500 x 500ピクセルの画像を生成するプログラムを作成します。 これらはサムネイルです。クリックすると、フルサイズの500×500画像が表示されます。 ここでの目標は、コンピューターで生成された画像を可能な限りフォトリアリスティックにすることです。したがって、理想的には、プログラムによって出力された画像のいずれかが上記の6つの画像と混合されている場合、初めて画像を見る人は実際の画像とは別にコンピューターで生成された画像を見分けることができません。 しかし、完璧なフォトリアリズムは難しいので、できる限りのことをしてください。これは人気コンテストであるため、より現実的な出力をもつ回答がより多く支持され、勝つ可能性が高くなります。 ルール 画像処理関数またはライブラリを使用できます。 あなたは6枚のサンプル画像から収集された情報に自分のアルゴリズムの基礎かもしれないが、あなた65536(2 16)の可能な出力画像は、互いに視覚的に区別可能であるべきであると特にクラックの配置に関して、サンプル画像。既存の写真から選択範囲を回転および変換するだけでなく、画像を本当に生成する必要があります。 それ以外の場合は、出力をハードコーディングしないでください。汎用アルゴリズムを使用する必要があり、65535を超える数値は理論的に有効な出力を生成するはずです。(私はそれを小さな最大整数型に対応するためだけに制限しました。) 入力整数は、ランダムなひびの入った土壌の出力画像を生成するシードと考えることができます。ただし、決定論的である必要があるため、同じ入力の結果は常に同じ出力になります。 出力画像は、正確に500×500ピクセルでなければなりません。 出力画像は、一般的な画像ファイル形式で保存することも、単に表示することもできます。 回答には、いくつかの出力画像の例と、それに対応する入力番号を必ず含めてください。 最も投票数の多い答えが勝ちです。投票者は、もちろん、6つのサンプルに類似した画像を作成しようとする回答に賛成票を投じ、規則に違反するか一貫性のない結果を与える回答に反対票を投じるべきです。 6つのサンプル画像はtexturelib.comから取得されました。割れた土壌の2つの大きな画像から1000 x 1000ピクセルの領域を選択し、500 x 500にサイズ変更しました。プログラムでこれらの大きな画像の分析を使用できますが、出力は選択した6つのサンプル画像を明確に模倣する必要があります。

30
アイデンティティマトリックスの構築
課題は非常に簡単です。入力が整数のn場合、n x n単位行列を出力します。単位行列は、1sが左上から右下に及ぶものです。作成した単位行列を返すまたは出力するプログラムまたは関数を作成します。出力は、2D配列、またはスペース/タブと改行で区切られた数値です。 入出力の例 1: [[1]] 2: [[1, 0], [0, 1]] 3: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] 4: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] 5: [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, …

4
数字でペイント
トゥルーカラー画像が与えられます。あなたの仕事は、このイメージのバージョンを生成することです。これは、数字によるペイント(非グラムではなく、子供の活動)を使用してペイントされたように見えます。画像とともに、2つのパラメーターを指定します:P、カラーパレットの最大サイズ(つまり、使用する個別の色の最大数)、およびN、使用するセルの最大数。あなたのアルゴリズムではないではない、すべて使用する必要がPの色とNの細胞を、それはより多くのそれよりも使用してはなりません。出力画像は、入力と同じサイズにする必要があります。 セルは全て同じ色を有する画素の連続した領域として定義されます。角でのみ接触するピクセルは、隣接しているとは見なされません。セルには穴がある場合があります。 つまり、N個のフラットシェーディング/単色領域とP個の異なる色のみで入力画像を近似することになります。 パラメーターを視覚化するために、ここに非常に単純な例を示します(特定の入力画像がない場合、私の狂ったペイントスキルを誇示します)。次の画像には、P = 6およびN = 11があります。 以下は、アルゴリズムをテストするためのいくつかの画像です(ほとんどが通常の容疑者です)。大きなバージョンの画像をクリックします。 さまざまなパラメータの少数の結果を含めてください。多数の結果を表示する場合は、imgur.comにギャラリーを作成して、回答のサイズを適切に保つことができます。または、上記のように、投稿にサムネイルを配置し、大きな画像へのリンクを作成します。また、何か良いものが見つかった場合は、他のテストイメージを自由に使用してください。 私は、パラメータの周りにいると仮定500≥N 、P〜30は、リアルペイント・バイ・ナンバーのテンプレートのようになります。 これは人気のあるコンテストなので、正味の投票数が最も多い回答が勝ちます。投票者は次の方法で回答を判断することが推奨されます 元の画像がどの程度近似されているか。 アルゴリズムがさまざまな種類の画像でどの程度うまく機能するか(通常、絵画は写真よりも簡単です)。 アルゴリズムが非常に制限的なパラメーターでどれだけうまく機能するか。 細胞の形がどのように有機的/滑らかに見えるか。 次のMathematicaスクリプトを使用して、結果を検証します。 image = <pastedimagehere> // ImageData; palette = Union[Join @@ image]; Print["P = ", Length@palette]; grid = GridGraph[Reverse@Most@Dimensions@image]; image = Flatten[image /. Thread[palette -> Range@Length@palette]]; Print["N = ", Length@ConnectedComponents[ Graph[Cases[EdgeList[grid], m_ <-> n_ …

3
静物(または感動的なもの)を描く-Game of Lifeで画像を描く
入力としてグレースケール画像が与えられます。あなたの仕事は、ConwayのGame of Lifeで、入力画像にできるだけ近い静的またはループパターンを見つけることです。 出力は、静止画像またはgifに変換可能な何らかの形式のループアニメーションのいずれかです。出力画像の寸法は入力と同じである必要があり、黒と白のピクセルのみが含まれている必要があります。 出力がアニメーションの場合、各フレームはGame of Lifeルールに従って前のフレームから生成され、ピクセルごとに1つのセルが必要です。アニメーションはループする必要があり、最初のフレームは同じルールによって最後のフレームから生成されます。 出力が静止画像の場合、ゲームのルールを適用して同じ画像を生成する必要があります。これは、「生きている」セルが3つ以上または2つ未満の「生きている」近隣を持つことはできず、「死んだ」セルが正確に3つの「生きている」近隣を持つことはできないことを意味します。(これは基本的に上記のアニメーションと同じですが、フレームは1つだけです。) 追加の規則と説明: あなた(またはあなたのプログラム)は、「生きている」セルを白で表し、「死んだ」セルを黒で表すか、その逆を表すかを選択できます。つまり、これをハードコーディングするか、プログラムで入力画像に基づいて選択できます。(ただし、アニメーションのすべてのフレームで同じである必要があります。) 境界条件は周期的である必要があります。つまり、右端の列のセルには左端の列に隣接セルがあります アニメーションの場合、フレームレートはユーザー(またはプログラム)に依存します。グレーのピクセルを近似するには、高速のフレームレートがうまく機能すると思います。 回答に埋め込まれた結果を少なくとも2つ投稿してください。以下のすべての入力画像から結果を投稿できる場合は、望ましいです。 十分に小さいファイルサイズでgifを実現するためにこれが必要な場合は、テストイメージを縮小してもかまいません。より大きなファイルにもリンクしたい場合は、それで問題ありません。自慢したい場合は、高解像度のソースファイルを自由に見つけてください。 コード内の制御可能なパラメーターが多すぎないようにしてください。プログラムの入力のみが画像であることが最善です。例外は、ファイルサイズに影響するため、アニメーションフレームの数を制御するためのパラメーターが必要な場合です。 外部プログラムを使用して、入出力ファイルの形式を変更したり、必要に応じて出力フレームをアニメーションにコンパイルしたりできます。(これは、ファイル形式処理の課題ではありません。) これは人気コンテストなので、投票数が最も多い答えが勝ちです。 ほとんどがこのサイトの他の質問から取られたテスト画像の選択です。(後で「ボーナス」入力画像を追加する可能性があります。) 物事を始めるために、Python 2の非常に馬鹿げた参照の試みがあります。これは、4つの正方形のブロックがGame of Lifeの安定した構造であるという事実を利用しています。入力画像を4倍に再スケーリングし、対応するピクセルが0.5より暗い場合はブロックを描画します。 from skimage import io from skimage import transform import sys img = io.imread(sys.argv[1],as_grey=True) source = transform.resize(img, [i/4 for i in img.shape]) img[:]=1 for x in xrange(source.shape[0]): for y …

9
キクセル-量子ピクセル
前書き キキセルは量子ピクセルです。従来のピクセルと同様に、3つの整数値(赤、緑、青)で表されます。ただし、キクセルは、組み合わせではなく、これら3つの状態の上位にあります。このスーパーポジションは、キクセルが観測されるまで持続します。この時点で、3つの古典的なピクセルのいずれかに崩壊します。RGB(255,0,0)、RGB(0,255,0)およびRGB(0,0,255)。 仕様 表現 各QUIXELは、0と255の間の3つの整数の配列として表されr、gそしてbそれぞれ。 スーパーポジション 各キクセルは、それぞれR、Gおよびで表される赤、青、緑の状態の間の上位にありBます。 観察 各キクセルが観察されると、3つの状態のいずれかに崩壊します。各古典的状態の確率はR = (r + 1) / (r + g + b +3)、 G = (g + 1) / (r + g + b + 3)およびB = (b + 1) / (r + g + b + 3)です。このように、各古典的な状態は常に、ゼロ以外の確率で現れます。 入力 関数またはプログラムは、キクセルのイメージを取得する必要があります。これを行う方法は柔軟です。多次元配列などを使用したファイル名はすべて受け入れられます。 出力 関数またはプログラムは、古典的なピクセルの画像を生成する必要があります。この生成された画像のデータ構造も柔軟です。全ての画素が、これら三つの一つであることに注意してください:RGB(255,0,0)、RGB(0,255,0)およびRGB(0,0,255) 出力は確定的であってはなりません。これらは量子ピクセルです!同じ入力でも異なる出力になるはずです。 …

13
ピクセルを並べ替える
あなたの仕事は、入力画像が与えられると、同じサイズの出力画像を作成するプログラムを作成することです。この場合、すべてのピクセルは16進値で並べられます。 あなたのプログラムは: ピクセルを左から右にソートしてから下にソートするか、最初に列でソートしてから右にソートします。いずれの場合も、左上のピクセルが最小で、右下のピクセルが最大です。 透明度を使用しますが、これは必須ではありません。 RGBで並べ替えますが、CMYまたは少なくとも3つの値を持つ他の形式を使用できます。ソートする値を選択できます。(HSVはいくつかの素晴らしい画像を与えるかもしれません) ほとんどのコンピューターで開くことができる既知の画像形式を使用します。 ルール: 出力はディスクに書き込むか、ファイルにパイプできる必要があります。 入力は、イメージへの相対パスの形式でコマンドライン引数として与えられるか、コマンドラインからパイプで渡されます。 これはコードゴルフなので、バイト単位の最短コードが勝ちです!

6
フォトモザイクまたは:電球を交換するには何人のプログラマーが必要ですか?
Stack Overflowのトップユーザーのアバターから2025枚のヘッドショットのモザイクを編集しました。 (画像をクリックすると、フルサイズで表示されます。) あなたの仕事は、この45×45グリッドの48×48ピクセルのアバターを使用して、別の画像の正確なフォトモザイクを作成するアルゴリズムを記述することです。 テスト画像 これがテスト画像です。最初はもちろん電球です! (ここではフルサイズではありません。画像をクリックしてフルサイズで表示してください。ハーフサイズバージョンは、The Kiss、A Sunday Afternoon ...、Steve Jobs、およびspheresで利用できます。) レイトレースされた球体を除くすべてのウィキペディアに感謝します。 フルサイズでは、これらの画像のサイズはすべて48で割り切れます。大きい画像はJPEGである必要があり、アップロードに十分な圧縮が可能です。 得点 これは人気コンテストです。元の画像を最も正確に描写するモザイクを使用した投稿は、投票する必要があります。私は1週間か2週間で最高票を獲得します。 ルール フォトモザイクは、グリッドから配置された、上記のモザイクから取られた変更されていない 48×48ピクセルのアバターで完全に構成されている必要があります。 モザイクでアバターを再利用できます。(実際には、より大きなテスト画像が必要です。) 出力を表示しますが、テストイメージは非常に大きく、StackExchangeは最大2MBのイメージの投稿のみを許可することに注意してください。画像を圧縮するか、他の場所にホストして、ここに小さいバージョンを配置します。 勝者を確認するには、PNGバージョンの電球または球体モザイクを提供する必要があります。これは、それらを検証して(以下を参照)、モザイクの見栄えを良くするためにアバターに余分な色を追加しないようにするためです。 バリデーター このPythonスクリプトを使用して、完成したモザイクが実際に変更されていないアバターを使用しているかどうかを確認できます。ただ、セットtoValidateとallTiles。ピクセルごとに正確に比較するため、JPEGやその他の損失の多い形式では機能しません。 from PIL import Image, ImageChops toValidate = 'test.png' #test.png is the mosaic to validate allTiles = 'avatars.png' #avatars.png is the grid of 2025 48x48 avatars def …

4
色のイメージバトル
最高のエントリーと@TheBestOne(優秀なスポーツマンシップ!)からの200バウンティを獲得するための@kuroinekoへのお祝い。 反対派のプログラムが行う前に、できるだけ多くの画像に色を付けるプログラムを書いてください。 簡単なルール プログラムには、画像、色、整数Nが与えられます。 各ターンには、他のプログラムからピクセルの更新が送信され、N個の更新を要求されます。 色のピクセルの隣にある任意の白いピクセルを更新できます。 最も多くのピクセルを追加したプログラムが勝ちます。 ルールの詳細 プログラムには、PNG画像のファイル名、ホームカラー、および数値Nが与えられます。数値Nは、プログラムが各ターンに色付けできるピクセルの最大数です。 例: MyProg arena.png (255,0,0) 30 入力画像は、辺が20〜1000ピクセルの長方形になります。黒、白、カラーのピクセルで構成されます。あなたのプログラムは白のシーケンスを選ぶかもしれません新しいピクセルごとに、自分の色の4つの隣接ピクセルのうち少なくとも1つを持たなければならないという条件で、ピクセルのして独自の色に。画像には最初、少なくとも1ピクセルの色があります。また、プログラムが割り当てられていない色のピクセルがある場合もあります。アルファチャネルは使用されません。 あなたの目標は、敵をブロックし、できるだけ多くのピクセルに色を書き込むことです。 各ターンは、STDINで1行以上のメッセージ行を受け入れ、STDOUTでピクセル座標で構成される行を書き込みます。STDOUTをバッファなしとして割り当てるか、毎回STDOUTバッファをフラッシュすることを忘れないでください。 各ターンに呼び出されるプレイヤーの順序はランダムに割り当てられます。これは、対戦相手(またはプログラム)が連続して2ターンを持っている可能性があることを意味します。 プログラムにはcolour (N,N,N) chose X,Y X,Y ... X,Y、プレーヤープログラムによって入力されたピクセルを説明する情報メッセージが送信されます。プレーヤーが移動を行わない場合、または有効な移動を行わない場合、そのプレーヤーの移動に関するメッセージは送信されません。プログラムには、受け入れられた独自の移動に関するメッセージも送信されます(少なくとも1つの有効な移動を指定した場合)。ピクセル0,0は、画像の左上隅にあります。 を受け取るpick pixelsと、プログラムはX,Y X,Y ... X,Y最大Nピクセルを出力します( '\ n'のみで構成される空の文字列が許可されます)。ピクセルは、プロットの順序でなければなりません。ピクセルが無効の場合、ピクセルは無視され、プレーヤーへのレポートには含まれません。プログラムの開始後、初期化するのに2秒かかりますが、各ターンで答えを返すのに0.1秒しかかかりません。0.1秒後に送信されたピクセル更新は、障害を記録します。5つの障害の後、プログラムは中断され、更新またはpick pixels要求は送信されません。 ジャッジプログラムが、中断されていないすべてのプレーヤープログラムから空または無効なピクセルの選択を受け取ると、画像は完了したと見なされ、プログラムに「終了」というメッセージが送信されます。「終了」を受け取った後、プログラムを終了する必要があります。 得点 審査員は、画像が完成した後にポイントを獲得します。スコアは、更新されたピクセル数をそのラウンドの平均ピクセルキャプチャで割ったもので、パーセンテージで表されます。 プレーヤーによって画像に追加されるピクセルの数はAです。すべての Pプレーヤーによって追加されるピクセルの合計数はTです。 avg = T/P score = 100*A/avg 投稿スコア 参照相手「The Blob」が与えられます。回答ごとに、ボットに名前、言語、および参照対戦相手に対するスコア(アリーナ1から4の平均)でタイトルを付けます。戦闘の写真やアニメーションもいいでしょう。勝者は、参照ボットに対して最高のスコアを獲得したプログラムです。 The Blobの勝ち方が簡単すぎると判明した場合は、より強力な参照相手と2回目のラウンドを追加することができます。 また、4つ以上のプレーヤープログラムを試すこともできます。回答として投稿された他のボットに対してボットをテストすることもできます。 …

6
ターザンのオリンピックつるスイングル​​ーチンを記録する
オリンピックのツルを振る人は、標準の木でルーチンを実行します。特に、標準ツリーにnは、0アップスルーのn-1頂点aと、各非ゼロ頂点をそのn % a下の頂点にリンクするエッジがあります。したがって、たとえば、標準ツリー5は次のようになります。 3 | 2 4 \ / 1 | 0 5を3で割ったときの剰余は2であるため、5を2で割ったときまたは4で割ったときの剰余は1であり、5を1で割ったときの剰余は0です。 今年、ターザンは頂点から始まり、頂点へn - 1とスイングし、頂点へn - 2と続きn - 3、最終的に頂点に降りるまで、新しいルーチンで金を守ります0。 ルーチンのスコアは、各スイング(降車を含む)のスコアの合計であり、スイングのスコアは、ツリー内の開始点と終了点の間の距離です。したがって、標準ツリー5のターザンのルーチンのスコアは6です。 から4までのスイングが33点(ダウン、アップ、アップ)を獲得し、 から3にスイングして21ポイント(ダウン)を獲得し、 から2までのスイングが11ポイント(ダウン)を獲得し、 から降車し1て01ポイント(下)を獲得します。 正の整数nを指定すると、標準ツリー上のターザンのルーチンのスコアを計算するプログラムまたは関数を記述しnます。サンプルの入力と出力: 1 -> 0 2 -> 1 3 -> 2 4 -> 6 5 -> 6 6 -> 12 7 -> 12 8 -> 18 …
32 code-golf  math  number  number-theory  code-golf  code-golf  restricted-source  programming-puzzle  css  code-golf  parsing  code-golf  random  encryption  code-golf  ascii-art  fractal  code-golf  math  code-golf  sorting  graph-theory  path-finding  permutations  code-golf  tetris  code-golf  card-games  code-golf  math  sequence  rational-numbers  code-golf  chess  code-golf  string  geometry  grid  code-golf  ascii-art  grid  code-golf  sequence  integer  code-golf  math  number-theory  packing  polyomino  code-golf  math  code-golf  string  quine  permutations  code-golf  math  code-golf  image-processing  optical-char-recognition  code-golf  string  kolmogorov-complexity  sequence  integer  code-golf  number  permutations  palindrome  code-golf  kolmogorov-complexity  code-golf  number  sequence  string  fewest-operations  code-golf  string  kolmogorov-complexity  sequence  primes  code-golf  string  ascii-art  code-golf  string  number  alphabet  code-golf  counting  code-golf  number  sequence  number-theory  primes  code-golf  subsequence  word-search 

20
ファロは配列をシャッフルする
A ファロshuffleが頻繁に「シャッフル」デッキにマジシャンで使用される技術です。ファロシャッフルを実行するには、まずデッキを2つの等しい半分にカットしてから、2つの半分をインターリーブします。例えば [1 2 3 4 5 6 7 8] シャローファロは [1 5 2 6 3 7 4 8] これは何回でも繰り返すことができます。興味深いことに、これを十分な回数繰り返すと、常に元の配列に戻ります。例えば: [1 2 3 4 5 6 7 8] [1 5 2 6 3 7 4 8] [1 3 5 7 2 4 6 8] [1 2 3 4 5 6 …
31 code-golf  permutations  card-games  code-golf  graphical-output  random  code-golf  image-processing  color  code-golf  primes  code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

4
線を使用して画像を再現する
トゥルーカラーRGBイメージI、描画する最大行数L、および各行の最小mおよび最大Mの長さを取り込むプログラムを作成します。出力画像Oのようなできるだけ見えるとIとを用いて描画さLの間のユークリッド長有する全てがまたはより少ない直線、MおよびMを。 各ラインは単色で、Oの境界内に両方の端点があり、Bresenhamのラインアルゴリズムを使用して描画されている必要があります(ほとんどのグラフィックライブラリは既に対応しています)。個々の線の太さは1ピクセルのみです。 長さ0の行も含め、すべての行は少なくとも1ピクセルを占める必要があります。線は互いに重ねて描画できます。 線を描画する前に、Oの背景を任意の単色に初期化できます(Iに依存する場合があります)。 詳細 OはIと同じ次元である必要があります。 Lは常に非負の整数です。Iの面積よりも大きい場合があります。 mおよびMは、M > = mの非負の浮動小数点数です。2つのピクセル間の距離は、それらの中心間のユークリッド距離です。この距離がm未満またはMより大きい場合、これらのピクセル間の線は許可されません。 ラインはアンチエイリアス処理されるべきではありません。 不透明度とアルファは使用しないでください。 あなたのプログラムは、100万ピクセル未満でLが10,000未満の画像で、最新のコンピューターで実行するのに1時間以上かかることはありません。 テスト画像 もちろん、最も正確または興味深い出力画像を表示する必要があります(LがIのピクセル数の5%から25%の間であり、mおよびMが対角サイズの約10分の1である場合に発生します)。 ここにいくつかのテスト画像があります(オリジナルをクリックしてください)。また、自分で投稿することもできます。 よりシンプルな画像: これは人気コンテストです。最も投票数の多い提出が勝ちです。 ノート 絶対値と同様に、Iの合計ピクセルの割合からLを導出すると役立つ場合があります。例えば、同じことだろうかの8×8画素の画像でした。mとMについても同様のことができます。これは必須ではありません。>>> imageliner I=img.png L=50% m=10 M=20>>> imageliner I=img.png L=32 m=10 M=20img.png 行は境界を越えることができないため、可能な最長の行はIの対角線の長さです。持つMをこれ以上のことは何もかかわらを壊すべきではありません。 当然、mが0で、LがIのピクセル数以上の場合、各ピクセル位置に長さ0の「ライン」を持たせることで、OはIと同じになります。この動作は必須ではありません。 間違いなく、Iの形を再現することは、色を再現することよりも重要です。エッジ検出を検討することもできます。

4
人生はカラフルになることができます!
生きているようなセルオートマトンの各セルは、生きているか死んでいるだけであるため、それを表すのに1ビットしか必要ありません。つまり、2色しかありません。かなり退屈。 通常の画像のピクセルあたりのビット数は24です(RGBごとに8ビット)。これは、セルとしてピクセルを持つ通常の画像では、24のリアルなゲームを一度にシミュレートできることを意味します! チャレンジ あなたの仕事は、実物のようなセルオートマトンの1世代のルールを24ビット深度画像(お好みのよく知られている形式)に適用し、結果の画像を出力するプログラムを書くことです。 24の各レイヤーは、厳密に独自のレイヤー内で、同じリアルなルールセットを使用します。24層は相互に作用しません。 また ゼロは死んだ細胞であり、ゼロは生細胞です。 境界条件は周期的です(トーラスを形成します)。 すべての画像サイズが機能するはずです。 入出力 プログラムは、stdinまたはコマンドライン(または言語に最も近いもの)を介して3つの引数を取る必要があります。 入力画像ファイルの名前。 新しいセルがいつ生まれるかを示す昇順の0〜8の数字の文字列: 桁の場合はdが文字列である彼らが持っているときに死んだ細胞が生きてくるD生活隣人を。 例:3通常の生活 -正確に3つの生きている隣人の死んだ細胞が生き返ります。 既存のセルがいつ生き残るかを示す、昇順の0から8までの数字のストリング: 桁の場合はdが文字列である、その後で生きた細胞D生きている隣人はそうでない場合、彼らは死ぬ、次世代に生き残ります。 例:23通常の生活-正確に2つまたは3つの隣接セルを持つセルのみが次のラウンドまで生き残ります。 ムーア近傍が常に使用されることに注意してください。実物のようなオートマトンと多くの興味深いルールセットを正確に定義するものの詳細については、こちらまたはこちらをお読みください。 1世代以降の出力イメージは、表示するかout.png、bmpまたは(または何でも)として保存する必要があります。 提出 バイト単位の最短コードが優先されます。 いくつかの重要なルールセットに対して、少なくとも1つのテストイメージとその3つの後続の世代を含める必要があります。これ以上良いものが思いつかない場合は、アバターと通常のライフルールを使用してください。 必要に応じて、緑色の128層に唯一の生きているビットがあるこのGosper Glider Gunを使用できます(通常の生活でのみ動作するはずです)。 興味深いシーケンスやアニメーションを投稿することを強くお勧めします。

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