マッシュアップタイム!
これは、私のランダムゴルフオブザデイとオプティマイザーのASCIIアートオブザデイシリーズの両方の第5回です。このチャレンジでの投稿は、両方のリーダーボードにカウントされます(リンクされた投稿を見つけることができます)。もちろん、これを他のコードゴルフチャレンジと同様に扱い、いずれかのシリーズについてまったく心配することなく答えることができます。
穴5:ダイヤモンドのタイル
通常の六角形は、常に次のようにダイヤモンドでタイル化できます。
これらのタイルのASCIIアート表現を使用します。辺の長さが2の六角形には、このようなタイルが20個あります。
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
/\_\_\ /\_\_\ /\_\_\ /\_\_\ /_/\_\ /_/\_\ /\_\_\ /_/\_\ /_/\_\ /_/\_\
/\/\_\_\ /\/_/\_\ /\/_/_/\ /\/_/\_\ /\_\/\_\ /\_\/_/\ /\/_/_/\ /\_\/\_\ /\_\/_/\ /_/\/\_\
\/\/_/_/ \/\_\/_/ \/\_\_\/ \/_/\/_/ \/\_\/_/ \/\_\_\/ \/_/\_\/ \/_/\/_/ \/_/\_\/ \_\/\/_/
\/_/_/ \/_/_/ \/_/_/ \_\/_/ \/_/_/ \/_/_/ \_\/_/ \_\/_/ \_\/_/ \_\/_/
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
/_/_/\ /\_\_\ /_/\_\ /_/_/\ /_/\_\ /_/\_\ /_/_/\ /_/_/\ /_/_/\ /_/_/\
/\_\_\/\ /\/_/_/\ /_/\/_/\ /\_\_\/\ /\_\/_/\ /_/\/_/\ /_/\_\/\ /\_\_\/\ /_/\_\/\ /_/_/\/\
\/\_\_\/ \/_/_/\/ \_\/\_\/ \/_/\_\/ \/_/_/\/ \_\/_/\/ \_\/\_\/ \/_/_/\/ \_\/_/\/ \_\_\/\/
\/_/_/ \_\_\/ \_\/_/ \_\/_/ \_\_\/ \_\_\/ \_\/_/ \_\_\/ \_\_\/ \_\_\/
辺の長さN
を指定すると、辺の長さの六角形のタイルをN
ランダムに生成する必要があります。正確な分布は重要ではありませんが、各タイルはゼロ以外の確率で返される必要があります。
のためにN ≤ 4
、あなたの提出物は、少なくとも80%の時間で1分以内にタイルを作成しなければならず、少なくとも80%のタイルは1分以内に生成される可能性があります。ほとんどのアプローチでは、このルールを心配する必要はありません(非常に寛大です)-これは、タイルになるまで任意の文字列を生成する非常に単純な拒否ベースのアルゴリズムを除外するためです。
特定のNの可能なタイルの総数は、OEIS A008793で確認できます。
完全なプログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を受け取り、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して出力を生成できます。
六角形を揃えるのに必要なスペースよりも多くの先行スペースを出力しないでください(つまり、六角形の左隅にはスペースがありません)。各行には最大でN
末尾のスペースが含まれる場合があります(必ずしも一貫性があるとは限りません。そのため、たとえば、四角形の出力を使用して、六角形の境界ボックスを印刷できます)。
これはコードゴルフであるため、最短の提出(バイト単位)が優先されます。そしてもちろん、ユーザーごとの最短投稿もシリーズの総合リーダーボードに入ります。
リーダーボード
各シリーズの最初の投稿でリーダーボードが生成されます。
回答が表示されるようにするには、次のマークダウンテンプレートを使用して、すべての回答を見出しで開始してください。
# Language Name, N bytes
N
提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば:
# Ruby, <s>104</s> <s>101</s> 96 bytes
(言語は現在表示されていませんが、スニペットはそれを必要とし、解析します。将来、言語ごとのリーダーボードを追加するかもしれません。)
For N ≤ 4, your submission must produce a tiling within 1 minute at least 80% of the time.
簡単すぎる:時間の80%と同じ、基本的なタイリングは、それ以外の場合はI私が好きな時間に別のタイリングを見つける