裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

トリッキーなプログラム

2020年02月15日 | ブログラミング

お題:標準出力 【難易度★★★★★】

標準出力でSh1maを出力してください。ルールは以下の通りです。

    • コード中に文字列("", '')を含んではいけない
    • コード中に数値を含んではいけない
    • chr, ordの禁止

できる方はどうぞ。

というのがあったので,Python で書いてみた。

後で,R でも書いてみよう。

import string
w = string.digits
w = w[len(w):len(w)]
A = list(string.ascii_uppercase)
A.pop(); A.pop(); A.pop(); A.pop(); A.pop()
A.pop(); A.pop()
print(A.pop(), end=w)
a = list(string.ascii_lowercase)
a.pop(); a.pop(); a.pop(); a.pop(); a.pop()
a.pop(); a.pop(); a.pop(); a.pop(); a.pop()
a.pop(); a.pop(); a.pop(); a.pop(); a.pop()
a.pop(); a.pop(); a.pop()
print(a.pop(), end=w)
d = list(string.digits)
d.pop(); d.pop(); d.pop(); d.pop(); d.pop()
d.pop(); d.pop(); d.pop()
print(d.pop(), end=w)
a = list(string.ascii_lowercase)
a.pop(); a.pop(); a.pop(); a.pop(); a.pop()
a.pop(); a.pop(); a.pop(); a.pop(); a.pop()
a.pop(); a.pop(); a.pop()
print(a.pop(), end=w)
a.pop(); a.pop(); a.pop(); a.pop(); a.pop()
a.pop(); a.pop(); a.pop(); a.pop(); a.pop()
a.pop()

print(a.pop())

R では,別のアルゴリズム(おおげさ)で書いてみる

zero = pi - pi
one = pi / pi
two = one + one
four = two + two
string.pi = as.character(pi)
cat(LETTERS[four * four + two + one], letters[four * two],
  substr(string.pi, two + one, two + one),
 
letters[four * two + four + one],
  letters[one], sep=substr(string.pi, one, zero))

Python だと

import string
from math import pi
zero = int(pi - pi)
one = int(pi / pi)
two = one + one
four = two + two
LETTERS = list(string.ascii_uppercase)
letters = list(string.ascii_lowercase)
print(LETTERS[four * four + two], letters[four * two - one],
  str(pi)[two:two + one],
  letters[four * two + four],
  letters[zero], sep=str(pi)[one:one])

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村