コードを1行も書かずにシンプルな電卓を「書く」


25

それは超簡単:

コードを1行も書かずにプログラムを作成します。コードは、既存のStack Overflowの質問と回答のみで構成されます。

プログラムは2つの乱数を作成し、その数値を出力する必要があります

  • に追加、
  • から引き、
  • と乗算されます
  • で割った

お互い。

ルール

回答で使用した質問/回答へのリンクを含める必要があります。次の例外を除き、見つけたコードを変更することはできません。

  1. 変数、関数、およびメソッドの名前を変更できます。(これは、たとえばscanner.nextInt()をscanner.nextLine()に変更し、メソッド名を変更していると主張することにより、メソッド呼び出しを変更できるという意味ではありません。変更は、同じエンティティ。)。変数、関数、またはメソッドの名前が再度変更された場合でも、ソリューションは機能するはずです。

  2. インデントを適切に調整できます。

  3. コードスニペットが機能するために適切なモジュールがロードされていると想定できます。(たとえば、JavaおよびPythonのステートメントをインポートし、C#およびC ++のステートメントを使用し、すべての言語で同等のものを使用します)コードスニペットにインポートが含まれている場合、それらをコードの先頭に移動できます。

  4. 言語でコードを実行するために何らかの種類のメソッド本体(public static void main(String[] args)Java、static int Main(string[] args)C#など)にする必要がある場合、適切なメソッドでコードをラップできます。ただし、そのメインメソッドの内容は変更しないでください。

  5. 実行される変数/メソッド/関数/クラスの名前変更の明示的なリストを提供する必要があります。

  6. スニペットのスニペットを取得することはできません(投稿からコードブロックを取得する場合は、全体を取得することを意味します)。このチャレンジを開始する前に投稿されたスニペットを使用する必要があります。

人気コンテストなので、多くの賛成票が勝ちます!

締め切り

8月の終わり頃に投票数が最も多い投稿を受け入れます。6。


こんにちはマイケル、PPCGスタック交換へようこそ!このサイトでのコードチャレンジのルールの1つは、客観的な勝利条件を持たなければならないということです。そのため、この条件を選択する必要があります。これはあなたにいくつかのアイデアを与えるかもしれない同様の挑戦です。
isaacg

こんにちは@isaacg、ありがとうございます。これを見て、削除/編集します。
クリスpベーコン

@isaacg、今は大丈夫だと思います。あなたはここで私よりも経験がありますが、締め切りは近すぎますか?
クリスpベーコン

ずっといいです。締め切りは近すぎますが、標準は約1〜2週間です。
isaacg

はい、ありがとう。
クリスpベーコン

回答:


17

J、7つの質問/回答、Jについてはなし

echo a%b[echo a*b[echo a-b[echo a+b[b=:?2147483647 [a=:?2147483647

それはそれを行うにはかなり安い方法です、私は嘘をつくつもりはありません。ここに私が使用したSOの答えがあります:

変数fooをコード内aおよびbコード内で名前変更しました。


このアプローチをとるのはAPLではずっと難しいと思いますが、それでもコードブロック内の文字を自分で見つける可能性は十分にあります。
JohnE

1
@JohnE ASCIIノイズであることの利点です!
15

1
私はこの答えが好きですが、質問は「スニペットのスニペットを取得することはできません」と述べています-これは何をしていますか?
unclemeat

3
@unclemeat「投稿からコードブロックを取得する場合、すべてを取得します」。私には、投稿に複数のコードブロックがある場合、1つだけを取得できますが、コードブロックに参加することはできません。
15

これらはすべて完全なコードブロックに由来します。ソースを見てください。
ショーンレイサム

7

パイソン2、7つの 6参照

このソリューションの作成は見た目ほど簡単ではありませんでした。シンボルは検索に含まれないため、特定のコードのスタックオーバーフローを検索するのは困難です。

私は、文献#1の代わりに別の答えを使って、2000ビットの乱数でこれを行う方法を発見した、しかし私は、オンラインでそれが伴うため、私が使用する環境でテストができなかったgetrandbits、通話os.urandom私与えますNotImplementedError、代わりにこの方法で行った。これは、TIOで実際に使用できるようになりました。

オンラインで試す

#assumed to be loaded
import random

n1 = []
n1.append(random.randint(1, 100))

n2 = []
n2.append(random.randint(1, 100))

r1 = map(sum, zip(n1, n2))
r2 = map(lambda t: t[0] - t[1] ,zip(n1, n2))

ab = [n1[i]*n2[i] for i in range(len(n1))]

r1, last = r1[0], r1[-1]
r2, last = r2[0], r2[-1]
ab, last = ab[0], ab[-1]
n2, last = n2[0], n2[-1]

print r1
print r2
print ab
ab = float(ab) / n2
ab = float(ab) / n2
print ab

参照資料

import random 質問はそれが許可されていると言うので、ロードされていると仮定されます。

  1. lst = []そしてlst.append(random.randint(1, 100))- ここに

  2. map(sum, zip(r1, r2))map(lambda t: t[0] - t[1] ,zip(r1, r2))r1、とr2- 。ここ

  3. result = float(a) / b- ここ

  4. ab = [a[i]*b[i] for i in range(len(a))]- ここ

  5. first, last = some_list[0], some_list[-1]- ここ

  6. print x- ここ

改名

  1. lst改名n1し、n2(参考#1:私は二回全体のコードを使用)

  2. r1r2にリネームn1してn2(#2 REF:答えはそれらを含むので、私は、最後の印刷にマップを割り当てるには、かかわらず、後から別の変数を使用して分割します。)

  3. resulta名前が変更されabb名前が変更されましたn2(参照#3)

  4. abに名称変更n1し、n2(参考文献#4)

  5. firstそしてsome_list両方ともに改名r1r2ab、またはn2、その行に応じて。(参照#5:これを4回使用しました。最初の割り当てのみが使用されるため、名前を変更しないことに注意してくださいlast

  6. x変更されr1r2またはab、その行に応じて。(参照番号6)


1

10進数、2つの参照

82D82D00D30001D30041D301212010D301200D30001D30042D301212010D301200D30001D30043D301212010D301200D30001D30044D30122

使用されるコマンド:

  • 0 SET(デフォルトのスタックインデックス)
  • 1 押す
    • 2 CHAR
  • 2 ポップ
  • 3 I / O
    • 00 複製スタック
    • 01 スタックからSTDOUTへ
  • 4 数学
    • 1 追加
    • 2 契約
    • 3 かける
    • 4 分割
  • 8 ビルトイン
    • 2 ランダムな整数をスタックにプッシュします

説明バージョン:

82D       ; push random INT    - stack contains {r1}
82D       ; push random INT    - stack contains {r1, r2}

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
41D       ; math +             - stack contains {r1, r2, r1+r2}
301       ; print from stack to output
2         ; pop                - stack contains {r1, r2}

12010D3012; print newline

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
42D       ; math -             - stack contains {r1, r2, r1-r2}
301       ; print from stack to output
2         ; pop                - stack contains {r1, r2}

12010D3012; print newline

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
43D       ; math *             - stack contains {r1, r2, r1*r2}
301       ; print from stack to output
2         ;                    - stack contains {r1, r2}

12010D3012; print newline

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
44D       ; math /             - stack contains {r1, r2, r1/r2}
301       ; print from stack to output

ソース:

オンラインでお試しください!出力キャッシュが自動的に無効になっていない場合は、無効にする必要があります。

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