単項へのBrainf ** kおよび戻る
制限されたソースおよび他のそのような課題に非常に有用である言語がある単項、プログラムは一つだけの文字で書かれているbrainfuck誘導体。あなたの仕事は、プログラムをBrainfuckから単項に変換するプログラムと、逆のプログラムを作成することです。両方のプログラムは同じ言語で作成します。スコアは、2つのプログラムの長さの合計になります。 どのようにブレインファックから単項式に変換しますか? この表に従って、最初にあなたのコードをバイナリに変換します: 次に、コードを1つの巨大な2進数にコードの順序で連結します。 1文字列の先頭にa を付けて、一意の2進数を確保します。 任意の文字を使用して、2進数から単項数に変換します。 例:+.だろう000000000000000000000000000000000000000000000000000000000000000000000000000000000000(84ゼロ)。 Brainfuck->単項仕様 結果のプログラムは信じられないほど巨大になるため、実際のプログラムではなく、結果のプログラムの長さだけを印刷します。 stdin、関数argなどを使用して、brainfuckプログラムを文字列として取得し、長さを出力します。 プログラムは常に有効で、8文字しか含まれていません。 単項-> Brainfuckの仕様 上記のアルゴリズムの逆を実装する必要があります。 ここでも問題のサイズが大きいため、入力は単項コードの長さを表す数値になります。 いつもと同じI / Oルール。 プログラムは常に有効で、8文字しか含まれていません。 テストケース Hello World- ++++++[>++++++++++++<-]>.>++++++++++[>++++++++++<-]>+.+++++++..+++.>++++[>+++++++++++<-]>.<+++[>----<-]>.<<<<<+++[>+++++<-]>.>>.+++.------.--------.>>+.=239234107117088762456728667968602154633390994619022073954825877681363348343524058579165785448174718768772358485472231582844556848101441556 フィボナッチ- ++++++++++++++++++++++++++++++++++++++++++++>++++++++++++++++++++++++++++++++>++++++++++++++++>>+<<[>>>>++++++++++<<[->+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]>[<+>-]>[-]>>>++++++++++<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>[-]>>[++++++++++++++++++++++++++++++++++++++++++++++++.[-]]<[++++++++++++++++++++++++++++++++++++++++++++++++.[-]]<<<++++++++++++++++++++++++++++++++++++++++++++++++.[-]<<<<<<<.>.>>[>>+<<-]>[>+<<+>-]>[<+>-]<<<-]<<++...=13067995222095367150854793937817629722033205198624522624687536186118993888926522550140580142585590431635487113180955099384652678100247403485397450658564826143160529351955621991895221530908461364045400531236124980271740502887704217664044858614821622360156740992393765239123681327824577149595724956207165558106099868913919959549896553103116795519592552089266360725543244154867904980260 これはコードゴルフなので、バイト単位の最低スコアが勝ちです! Unaryで解決策を考えている人はいますか?; P