課題に近いコード:整数の合計


39

これは簡単な課題です。整数のシーケンスが与えられたら、その中のすべての整数の合計を見つけます。

しかし、ひねりを加えて。スコアは、コードと次のフレーズ(チャレンジ)の間のレーベンシュタイン距離です。

整数のセットが与えられたら、その中のすべての整数の合計を見つけます。

入力に改行や末尾のスペースがないと仮定できます。

入出力の例:

Input: 1 5 -6 2 4 5
Output: 11
Input: 1 -2 10
Output: 9

レーベンシュタイン距離のオンライン計算機は、http//planetcalc.com/1721/で見つけることができます



7

1
これには、別の課題の続編があると思いますが、同じレーベンシュタイン距離の原則がありますか?これが続編にふさわしいと見なされるかどうかはわかりません。

1
@NicoA間違いなく!たぶん、唯一の問題は、このタスクが簡単すぎることです。
マルティセン

2
@NicoAその場合、許可されていないものを定義する際には十分に注意してください。たとえば、多くの言語では、生の文字列を浮動させることができます。
xnor

回答:


58

Python、距離3

#Given a set of integers, find the 
sum#of all integers in it.

これにより、組み込み関数が得られますsum。これは、などのセットを合計できsum({3,5,7})==17ます。残りの部分はコメント化されています。これには距離3があり、3つの編集があります。

  • イニシャルを追加 #
  • 改行を追加する
  • 後のスペースsum#

3
素晴らしい英語のような構文の別の便利な機能
-qwr

1
私の唯一の問題は、それが組み込まれているので、あなたもあなたのコードでは必要ありません、これは完全なプログラムではありませんので、それを使用する方法であり、(理論的には)
ベータ崩壊

1
@BetaDecayこれは、デフォルトで関数が許可され、関数リテラルが関数に許可されるというルールのために機能します
xnor

54

ジュリア、距離27 26

コメントはありません!

Given(a)=(Set;of;integer; find; [sum(a),all,integer,in][1])

これにより、Given配列を受け入れ、その要素の合計を返すという関数が作成されます。多くのJuliaビルトインには関連する名前があります(ただし、ここでの計算とは無関係です)ので、セミコロンで区切られたいくつかをリストすることができます。それらが最後にリストされていない限り、返されません。最後の部分では、実際に合計と3つの関数を含む配列を作成し、最初の要素である合計を選択します。


挑戦の精神の範囲内で間違いなくコメントはありません。よくやった。
クリストファー・ウィート

@ChristopherWirtありがとう!:)
アレックスA.

4
改善を提案できますか?Given=(a;set;of=integer; find;th;[sum,of,all,integer, in][])-そして、まだ同じように動作しますが、これは18の距離を持っている「考える」
グレンO

22

APL、距離6 3

3つの距離を保存しました...?デニスに感謝します!

+/⍝en a set of integers, find the sum of all integers in it.

これは、指定された配列(+/)を合計します。文の残りはコメント()を使用して最後に追加されます。


1
必要{ありません⍵}+/すでに有効な関数です。
デニス

@Dennis Awesome、提案をありがとう!
アレックスA.

10

GolfScript、5

~{Given a set of integers+ find the sum of all integers in it}*

これはコメントを使用しない完全なプログラムです(ただし、多くの操作はありません)。

Web GolfScriptでオンラインで試してください。


9

R、距離37 36 34

コメントを使用せずに:)

 as.integer ( sum (scan(,integer( ) )))

先頭にスペースがあることに注意してください


8

Mathematica、距離17

Given a set of integers find the sum of all integers in it*0+Total@Input[]

コメントやノーオペレーションは使用しませんが、代わりにすべての単語を変数として宣言し、ゼロを掛けることでそれらを削除します。

また、整数のセットを実際に入力として受け取る唯一の答えであるという利点もあります。

入力{1,2,3}6期待どおりに出力を提供します。

残念ながら、Mathematica Sum関数は問題のタスクを実行しないため、より多くのバイトが必要です。


Given a set of integers find the sum of all *0+Total@Input[]距離14
リーキー修道女

6

Java- 43 41

私は試した。

float a_set_of(int[] r){return IntStream.of(r).sum()}//n it.
Given a set of integers, find the sum of all integers in it.

Java:P。


関数の引数をaからrに変更して、1つの編集距離を節約できると思います。
Element118

@ Element118素敵なキャッチ。また、メソッド名がより良く揃うように、戻り値の型を変更しました。
アヌビアヌーブ

2
スニペットの先頭として「int a_」を使用できませんでしたか?(intの前に1スペース、a_の前に2スペース
masterX244

6

RProgN、距離2。

Given aset of integers, ;find the sum of all integers in it.

RProgNでは、a、set、find、およびsumはすべてコマンドです。他のすべては、構文ではデフォルトで無視されます。aはアルファベットをスタックにプッシュします。これにより、合計が失敗します。Setには十分な引数がないため、常に失敗し、エラーが発生します。Findの引数の数が間違っているか、アルファベットと入力スタックを比較しようとしましたが、動作しません。

aとsetは、その間のスペースを削除することで両方とも「修正」できます。asetは関数ではないため、無視されます。Findには、先頭に余分な文字が挿入されているだけで、認識されず無視されます。合計のみが残ります。これにより、入力スタックの内容が簡単に合計されます。

最後に、RProgNが勝つかもしれません!

オンラインでお試しください!



4

Matlab、距離29 28

Given_a_set_of_integers=@(findthe)sum(all(1)*findthe)

コメントを使用せずに:-)

コードは匿名関数の形式です。入力は数値のベクトル(1D配列)であると仮定しています。

例:

>> Given_a_set_of_integers=@(findthe)sum(all(1)*findthe)
Given_a_set_of_integers = 
    @(findthe)sum(all(1)*findthe)

>> Given_a_set_of_integers([1 5 -6 2 4 5])
ans =
    11

3

O、5

M] + o "整数のセットが与えられ、その中のすべての整数の合計を見つけます。

数値は16進数で、逆の負の表記である必要があります。

  • -6 => 6_
  • -4 => 4_
  • -10 => A_

オンラインで試す


1
いいね、リンクは機能します!
マルティセン

素敵なデモ!ただし、IDEの一種のやり過ぎではありませんか?
kirbyfan64sos

@ kirbyfan64sos完全にですが、構文の強調表示やその他の機能を追加したいと思います。今のところ、それは単なる通訳です。
フェーズ

O esolangsページへのリンクの方が便利だと思います。
mbomb007

@ mbomb007しかし、それは恐ろしく時代遅れです。そこにあるものの半分は機能せず、それは文書化された言語のほんの一部です。
フェーズ

3

K、60 5

+/ / Given a set of integers, find the sum of all integers in it.

私はシンボルがレベの距離にうまく合わないと推測しています...

ハハハ。もともと、私はLeveXXXの距離が何もなかったので、60を得ました。そして、役に立つコメントのおかげで、5に落ちました。


シンボルを使用しているわけではなく、レーベンシュタイン距離は追加、削除、置換の数です。したがって、元の文字列から60個の削除があります。
マルティセン

記号ではなく、コードが非常に短いため、フレーズの長さ-コードの長さ= 60。

2
上にスクロールして「レーベンシュタイン」の正しいスペルを取得できることをご存知ですか?;)
アレックスA.

@AlexA。このように面白いです。:)
kirbyfan64sos

2
私は彼を責めません。コピーアンドペーストする前に、スペルを約10回確認する必要がありました。

3

F#、距離21

let ``Given a set of integers, find the sum of all integers in it`` x = Seq.sum x

ダブルティックを使用して、スペースを含む名前を関数に付ける機能が大好きです。

使用法:

[1;2;3] |> ``Given a set of integers, find the sum of all integers in it`` |> printfn "%i"

6


3

ピップ、距離3

些細なコメントはないが、たくさんの操作ができないゴルフのクラブに参加すると...

Given a set of integers, find the sum of all integers in $+g

PipのGitHubリポジトリ

コードは実際にそれ自体を文書化します。s/in/using/より正確な説明のためかもしれません。コマンドライン引数として与えられた整数はリストgに読み込まれ、ここで追加時に折り畳まれ、結果が自動出力されます。それ以外のほとんどすべては単なる変数であり、何もしません。

メイン関数を参照し、コードブロックの範囲を取得することは意味をなさないため、s, f文句を言わずに動作した最初は少し驚きましたf。しかし、私は気づきました:,範囲演算子は、関数の引数が与えられると、別の関数を構築するだけです(Pipの多くの演算子と同様)。だから私はにs, f評価すると思います{Given a set of integers, find the sum of all integers in " ",$+g}。(とにかく破棄されます。)

最後の1つのポイント:このコードは現在のバージョンのPipで機能しますが、ここではGまだ何も割り当てていません。将来のバージョンでG2項演算子または3項演算子を作成する場合、距離4バージョンが必要になります。のgiven代わりに使用するとGivenうまくいきます。


3

ハスケル、距離11

コメントはありません!

const sum"Given a set of integers, find the sum of all integers in it."

使用法:

> const sum"Given a set of integers, find the sum of all integers in it." $ [1..10]
55

3

キュビックス、距離9

@ivOn a ;et I+ i?tegers, fu;d <he sum of all integers in it.

オンラインでお試しください!

これはキューブを包みます

      @ i v
      O n a
      ; e t
I + i ? t e g e r s , f
u ; d < h e s u m o f a
l l i n t e g e r s i n
      i t .
      . . .
      . . .

運用コードは

  • I+i 整数を入力し、TOSに追加してから文字を入力します
  • ?文字値をテストします。-1の場合は左にリダイレクト(入力の終わり)、その他の場合は右にリダイレクト(0は入力不可)
    • ;O@ TOSをポップし、合計を出力して終了する
    • <;u リダイレクトし、TOSをポップし、u-turnを開始します


1

PHP4.1、距離25

これはかなり長いもので、実際には実行の後半にあります。

とにかく、ここにあります:

<?=$n_a_set_of_integers_fi=array_sum($f_all_integers_in_i);

これが機能するには、キーを使用してPOST / GET / COOKIE / sessionに配列を渡すだけですf_all_integers_in_i


2
コメントはありません!
アヌビアヌーブ


0

C ++ 17、距離44 29

Variadic Generic Lambda FTW

[](auto...t){return(t+...);}//the sum of all integers in it.

以前のソリューション

template<class...t>int s(t...l){return(...+l);}//gers in it.



0

Ly、スコア4

&+#Given a set of integers, find the sum of all integers in it.

末尾の改行に注意してください。

オンラインでお試しください!

コードは一目瞭然です。&+はLyの加算演算子で、while #はコメントです。プログラムをコメント行で終了すると、Lyの暗黙的な出力が「コメントアウト」されるため、末尾の改行を含める必要があるのは残念です。これは、実際に機能を呼び出すインタープリターのバグです。


0

dc、14

?[+z1 <f]d  sf xp#egers, find the sum of all integers in it.

コメント:

?                   # read numbers
 [                  # start macro
  +                 # add up last two things on stack
   z1 <f            # if stack size is more than 1, execute macro at register 'f'
        ]           # end macro
         d          # dupe it
            sf      # saving one copy to register 'f'
               x    # and executing another
                p   # printing result

TIO

1つの数字を入力するとスタックが空になると文句を言いますが、それでも動作します。0を削除すると2つの差分が保存されます。


0

Excel VBA、距離:11

[a:a]ActiveSheetオブジェクトの範囲から入力を受け取り、VBEイミディエイトウィンドウに出力する匿名VBEイミディエイトウィンドウ関数

?[Sum(a:a)] 'f integers, find the sum of all integers in it.

0

Brain-Flak、20

(([]){[{}]{}([])}{})ers, find the sum of all integers in it.

オンラインでお試しください!

説明

元のテキストには括弧がないため、これは結果にBrain-Flakの問題になります。しかし、Brain-Flakでの回答はめったにないので、それでもこの回答は簡単ではありません。

最初の直感はおそらく次のコードでしょう

({{}})

これは機能します... スタックにゼロがない限り、それはゼロになるまで合計します。この問題を回避するには、スタックの高さを使用して、スタックが空でないことを確認する必要があります。これは次のように設定できます

([])    #{ Push stack height }
(       #{ Start Push }
{       #{ Loop until zero }
 <{}>   #{ Silently Pop the last height }
 {}     #{ Grab a value from the stack }
 <([])> #{ Silently push the stack height again }
}       #{ End loop }
{}      #{ Remove last stack height }
)       #{ Push the result }

これは機能しますが、何か問題があります。ループ内のポップとプッシュを消音し続けますが、それらはほぼ等しいため、それらをキャンセルする方法が必要です。しようとしたら

([])({[{}]{}([])}{})

毎回で終わりnます。だから、ここにトリックがあります、私たちはすでにn周りに座っています、私たちは物事のバランスをとるためにプッシュに移動します。

(([]){[{}]{}([])}{})

1
あなたの2^8th ppcg答えを祝福したい
テイラースコット


0

ゼリー、距離:2

Given a set of integers, find the sum of all integers in it.
S

オンラインでお試しください!

Jellyはメインリンク(最後の行)のみを評価し、明示的なコマンドは他のリンク(他の行)を実行します。

最後の行にはS、入力を合計するがあります。

メインリンクには最初の行への参照がないため、最初の行は実行されません。


0

スナップ!4.2.2.9(+ツール)、scratchblocks3構文、距離35

これは機能です。integers, find the sum of all inte入力です。

for each(et)of(integers, find the sum of all inte
change[s v]by(et
end
report(s

これはどのように入力を取りますか?入力はコードに貼り付けられますか?通常、この種の入力は許可されませんが、入力がSTDINから取得されるか、送信が関数の場合は引数として渡される必要があります。
ウィートウィザード

いいえ、それは機能です。integers, find the sum of all inteは引数であり、scratchblocks3構文の通常の変数とは区別されません。そのため、私は明確にしました
Silas Reel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.