チャレンジ
入力として文字列を指定すると、その文字列を出力するフーリエプログラムをたどります。
フーリエでは、文字列を出力する簡単な方法はありません。各文字コードを調べて、文字として出力する必要があります。
フーリエ
この言語は、プログラムの開始時に0に初期化されるグローバル変数であるアキュムレーターに基づいています。これは、言語のほぼすべての演算子で使用されます。アキュムレータの値を変更しないのは一部のみです。
キャラクターアウト
a
アキュムレータの値をASCIIコードとして取得し、文字を出力します。アキュムレーターの値を変更しません。
アキュムレータが255より大きい場合、プログラムはエラーを返します。同様に、アキュムレーターが0より小さい場合。
番号アウト
o
アキュムレータの値を出力します。アキュムレーターの値を変更しません。
増加する
^
アキュムレーターを1つ増やします。
減少
v
アキュムレータを1つ減らします。
追加する
+x
アキュムレータにxの値を加えた値にアキュムレータを設定します。
引く
-x
アキュムレータの値からxの値を引いた値にアキュムレータを設定します。
かける
*x
アキュムレータにxの値を掛けた値にアキュムレータを設定します。
割る
/x
アキュムレータをxの値で除算した値にアキュムレータを設定します。(これは整数除算であるため、1/6
結果はになります0
)
数
n
累算器を整数nに設定します。
注意
ここでx
、n
はから0
までの任意の整数2^32-1
です。
詳しくは
上記の演算子のみを使用する必要があります。したがって、次のいずれかを使用する場合、出力されるフーリエプログラムは無効になります(次の演算子が報奨金に許可されていることに注意してください)。
- 繰り返しループ
- Ifステートメント
- 変数
- ランダム
- モジュロ
- ユーザー入力
- 演算子よりも大きい/少ない
- 平等演算子
- 画面をクリア
- 時間遅延
- 日付関数
プログラムは、完全なプログラムまたは関数のいずれかであり、STDIN、ファイルまたは関数の引数を介して入力を受け取ります。インターネットから直接入力することもできます。
vv
コードにがある場合は、に置き換える必要があることに注意してください-2
。同じことが起こり^^
、それをに置き換え+2
ます。
例
入力がの場合、7n
予想されるプログラムは次のとおりです。
55a110a
しかし、あなたは1バイトを節約することができます
55a*2a
別の方法は
7o110a
番号を使用します。
同様に、入力がの場合、Hello
予想されるプログラムは次のとおりです。
72a101a108a108a111a
それを3バイトずつゴルフダウンすることができます(出力してもアキュムレータが変更されないため):
72a101a108aa111a
ただし、追加演算子を使用して2バイトを節約できます。
72a101a+7aa+3a
書式設定
MartinBüttnerのStack Snippetリーダーボードを使用するため、タイトルを次のようにフォーマットしてください。
# <Language name>, <length of total output> bytes
次に、タイトルの下に好きなものを置くことができます。
勝ち
このテキストファイルとこのテキストファイルを出力するには、(プログラムで作成された)フーリエプログラムの長さを投稿する必要があります。スコアは両方のフーリエプログラムの長さをバイト単位で組み合わせたものです(非ASCII文字はフーリエでは使用されないため、実際には違いはありません)。
最も低いスコアを持つ人が勝ちます。同点の場合、バイト単位の最短プログラムが勝ちます。
バウンティ
この500回の報奨金は、フーリエの関数のいずれかを使用して弦を打つ新しい答えです。これには、変数、ループ、ifステートメントなどが含まれます。この新しい答えは受け入れられません。
リーダーボード
上記の書式設定セクションを参照してください。
var QUESTION_ID=55384;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 getAnswers(){jQuery.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),e.has_more?getAnswers():process()}})}function shouldHaveHeading(e){var a=!1,r=e.body_markdown.split("\n");try{a|=/^#/.test(e.body_markdown),a|=["-","="].indexOf(r[1][0])>-1,a&=LANGUAGE_REG.test(e.body_markdown)}catch(n){}return a}function shouldHaveScore(e){var a=!1;try{a|=SIZE_REG.test(e.body_markdown.split("\n")[0])}catch(r){}return a}function getAuthorName(e){return e.owner.display_name}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading),answers.sort(function(e,a){var r=+(e.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0],n=+(a.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0];return r-n});var e={},a=1,r=null,n=1;answers.forEach(function(s){var t=s.body_markdown.split("\n")[0],o=jQuery("#answer-template").html(),l=(t.match(NUMBER_REG)[0],(t.match(SIZE_REG)||[0])[0]),c=t.match(LANGUAGE_REG)[1],i=getAuthorName(s);l!=r&&(n=a),r=l,++a,o=o.replace("{{PLACE}}",n+".").replace("{{NAME}}",i).replace("{{LANGUAGE}}",c).replace("{{SIZE}}",l).replace("{{LINK}}",s.share_link),o=jQuery(o),jQuery("#answers").append(o),e[c]=e[c]||{lang:c,user:i,size:l,link:s.share_link}});var s=[];for(var t in e)e.hasOwnProperty(t)&&s.push(e[t]);s.sort(function(e,a){return e.lang>a.lang?1:e.lang<a.lang?-1:0});for(var o=0;o<s.length;++o){var l=jQuery("#language-template").html(),t=s[o];l=l.replace("{{LANGUAGE}}",t.lang).replace("{{NAME}}",t.user).replace("{{SIZE}}",t.size).replace("{{LINK}}",t.link),l=jQuery(l),jQuery("#languages").append(l)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:<(?:s>[^&]*<\/s>|[^&]+>)[^\d&]*)*$)/,NUMBER_REG=/\d+/,LANGUAGE_REG=/^#*\s*([^,]+)/;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table></div> <tbody id="languages"> </tbody> </table></div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody></table>