Birinci kod golf dekatlon [kapalı]


48

Görevler

Tüm yarışmacılar aşağıdaki 10 görev listesini çözmeye çalışmaktadır:

  1. Girişten n pozitif bir tamsayı okuyun ve negatif olmayan tamsayıların ilk n küplerinin toplamını döndürün.

    Giriş için 1bu geri dönmelidir 0.

  2. Girişten pozitif bir tamsayı n okuyun ve sadece n bir Mersenne üssü ise ve bir gerçek değeri döndürün .

  3. Girişten boş olmayan bir n tamsayıları listesini okuyun ve medyanlarına geri dönün .

    Eğer n bile, iki orta değerden küçük olanı kullanın.

    Örneğin, medyan [1 4 3 2]olduğunu 2.

  4. Girişten bir tamsayı (pozitif, negatif veya 0) veya temel 10 veya tekli bir dize gösterimini okuyun ve girişlerini sıfırdan olmadan (0 girişi hariç) negabiner olarak döndürün .

    Çıktı herhangi bir uygun şekilde biçimlendirilebilir (rakam, dizi, dizi vb.).

  1. Dönüş pneumonoultramicroscopicsilicovolcanoconiosis.

  2. Geçerli tarihi kontrol edin ve Happy New Year!Gregoryen takvimine göre uygunsa geri dönün .

  3. Sözde rasgele Unicode blok CJK Unified Ideographs Extension-A (U + 3400 - U + 4DB5) ' den 64 benzersiz atanmış kod noktası seçin ve karşılık gelen karakterlerin dizesini döndürün.

    Tüm olası dizgiler aynı seçme şansına sahip olmalıdır.

  4. Girdiden yazdırılabilir ASCII karakterlerinin iki dizisini okuyun ve eğer ve yalnızca ilk dizenin karakteri ikinci dizenin bir sırasını oluşturuyorsa bir gerçeği döndürür.

    Örneğin, abc, axbxctruthy dönmelidir ve bac, axbxcfalsy dönmelidir.

  1. Bir tamsayı boyutlu dikdörtgen dizi ve bir tamsayıdır oku n girişinden çarpılarak bütün tamsayılar ile modifiye edilmiş bir dizi geri n .

  1. Bir negatif olmayan bir sayıyı oku , n girişinden ve bir zincir geri n , aşağıda gösterildiği gibi, tren vagonları.

    N = 3 için örnek çıktı :

     ______   ______   ______ 
    |      | |      | |      |
     ()--() ~ ()--() ~ ()--()
    

    Çıktı, örnekteki gibi herhangi bir miktarda boşlukla çevrili olabilir.

Açıklamalar

  • 0 ne pozitif ne de negatif.

  • İzdeki boşlukta her zaman çıktıda izin verilir.

  • Herhangi bir tutarlı ve uygun sırada birkaç girdi okunabilir.

kurallar

  1. Hiçbir cevap aynı programlama dilinde iki farklı görevi çözemez. 1

  2. Her bireysel görev için standart kuralları uygulanır.

    Özellikle, olağan G / Ç varsayılanlarıyla programları veya işlevleri gönderebilirsiniz , ancak bu boşluklardan yararlanamazsınız .

    Görev 5, esasen bir mücadelesidir, bu nedenle sadece izin verilmez, aynı zamanda beklenir.

  3. Her görev için en fazla bir çözüm içeren kullanıcı başına yalnızca bir cevap gönderilmelidir.

    Lütfen cevabınızı aşağıdaki örnekteki gibi biçimlendirin:

    ## Task 1, Python, 42 bytes
    
        <code goes here>
    
    Explanation, I/O, required Python version, etc. go here.
    
    ---
    
    ## Task 7, C, 42 bytes
    
        <code goes here>
    
    Explanation, I/O, required compiler (flags), etc. go here.
    

puanlama

  1. Çözdüğün her görev için bir puan alırsın.

    Bu , katılmak için tüm görevleri çözmeniz gerekmediği anlamına gelir .

  2. Görev için n çözümünüz bu programlama dilinde en kısaysa, ek bir puan alırsınız.

  3. Görev n için olan çözümünüz tüm programlama dillerinden en kısaysa, ek bir puan alırsınız.

  4. Bonus puanları, her görev dili birleşimi ve her görev için sırasıyla bir kez verilir.

    Her zamanki gibi, eğer iki çözüm aynı byte sayısına sahipse, kayıt süresi kravat kırıcıdır.

    Biri daha sonra sizi geçerse, diğer cevaplayıcı kazandığı bonus puanlarını kaybedersiniz.

  5. Golf gönderebilir, cevabınıza dil ekleyebilir / kaldırabilir veya iki görev için kullanılan dilleri değiştirebilirsiniz.

    Biri cevabını ne zaman düzenlese, tüm cevaplar yeniden değerlendirilir.

  6. Bir görev için dilleri değiştirdiğinizde kıdemden vazgeçersiniz. 2

En yüksek puana sahip cevap kazanır. 3

Görev başına lider tablosu

<style>body{text-align:left!important}#answer-list{padding:10px;width:290px;float:left}#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}</style><script src=https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js></script><link rel=stylesheet href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id=answer-list><table class=answer-list><thead><tr><td>Task<td>Author<td>Language<td>Score<tbody id=answers></table></div><table style=display:none><tbody id=answer-template><tr><td>{{TASK}}<td>{{NAME}}<td>{{LANGUAGE}}<td>{{SIZE}}</table><script>function answersUrl(e){return"https://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 process(){answers.forEach(function(e){var s=e.body_markdown.split("\n").filter(function(e){return"#"==e[0]});s.forEach(function(s){var r=s.match(NUMBER_REG)[0],t=(s.match(SIZE_REG)||[0])[0],a=s.match(LANGUAGE_REG)[1],n=e.owner.display_name;entries.push({task:r,user:n,language:a,size:t})})}),entries.sort(function(e,s){var r=e.task-s.task;return r?r:e.size-s.size});for(var e=0;e<entries.length;e++){var s=jQuery("#answer-template").html();s=s.replace("{{TASK}}",entries[e].task).replace("{{NAME}}",entries[e].user).replace("{{LANGUAGE}}",entries[e].language).replace("{{SIZE}}",entries[e].size),s=jQuery(s),jQuery("#answers").append(s)}}var QUESTION_ID=52152,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:&lt;(?:s&gt;[^&]*&lt;\/s&gt;|[^&]+&gt;)[^\d&]*)*$)/,NUMBER_REG=/\d+/,LANGUAGE_REG=/^#*.*?,\s*\[*([^,\]]+)/,entries=[];</script>

Birleşik lider tablosu (2015-07-30 20:00 UTC)

User / Task      1 2 3 4 5 6 7 8 9 A   TOTAL   Tie breaker (if any)

DLosc            2 2 3 2 2 2 2 3 2 2      22
Sp3000           2 2 2 2 2 3 2 2 2 2      21
Doorknob         2 2 2 2 2 2 2 2 2 2      20
mathmandan       2 2 2 2 2 2 2 2 2 2      20   Combined byte count.
MickyT           2 2 2 2 2 2 1 2 2 2      19
Alex A.          2 1 2 2 2 2 1 2 2 2      18
Jacob            2 2 2 2 2 1 0 0 0 2      13
alephalpha       2 2 2 0 2 2 0 0 2 0      12
Martin Büttner   2 0 0 2 2 0 0 2 2 2      12   Combined byte count.
kirbyfan64sos    1 2 2 0 2 X 0 2 0 3      12   Per-language wins.
Maltysen         3 0 0 0 3 2 1 X 2 0      11
plannapus        2 2 0 0 2 2 0 2 0 2      10
jimmy23013       0 0 2 3 0 0 3 2 0 0      10   Solved tasks.
Tom              0 3 0 0 2 2 0 X 3 0      10   Combined byte count.
FryAmTheEggman   1 0 2 0 2 0 2 0 2 0       9
Vioz-            1 0 2 2 2 2 0 0 0 0       9   Combined byte count.
Toby Speight     2 0 0 0 2 2 0 0 0 2       8
Ismael Miguel    0 0 0 0 2 2 0 0 0 2       6
Pulga            0 2 2 0 0 0 0 0 0 2       6   Combined byte count.
flawr            2 0 2 0 0 0 0 0 0 0       4     
manatwork        2 0 0 0 0 2 0 0 0 0       4   Combined byte count.
TheNumberOne     1 0 0 0 2 0 0 0 0 0       3

İle işaretlenmiş görevler var X, ancak geçersiz.

Kombine afiş el ile inşa edilmiştir. Lütfen herhangi bir hata olup olmadığını söyle.


1 Diller, aynı dilin farklı sürümleri değilse farklı sayılır, bu nedenle yalnızca bir JavaScript, bir Python ve bir TI-BASIC vardır, ancak C, C ++, Octave ve MATLAB dört farklı dildir.

2 Görevi çözmek durumunda n dil kullanarak L içinde x bayt başkası çözer aynı bayt sayısı ile aynı dilde aynı görev, dil değiştirmek M ve rulo geri düzenleme, diğer Yanıt verenin bonus noktasını tutacak.

3 1, 2 ve 3 puanlama kurallarından (o sırada) kazanılan puanların sayısı, tüm çözülmüş görevlerin birleşik bayt sayısı (daha düşük) daha iyidir ve son olarak, oylama (daha yüksek) daha iyi sonuç verir.


6
Netleştirmek için, bu zorluk en az 10 dil bilenlerle sınırlıdır?
Rica

2
@VijayRamamurthy: Katılmak için tüm görevleri çözmek zorunda değilsiniz, bu nedenle yalnızca bir görevi çözüyorsanız, yalnızca bir dil bilmeniz gerekir.
Alex A.

2
@JoeZ: Burada 9 delikle karşılaştığımız bazı zorluklar oldu, ancak bu rakamlar birleşik baytlar tarafından atıldı. Skorumun dekatlonların nasıl puanlanacağı ile ilgili olduğu söylenemez, ancak bunun farklı bir zorluk türü olduğunu açıkça belirtmek isterim.
Dennis,

4
@lolesque: Bu standart bir kod golf mücadelesi olurdu. Burada asıl amaç her görev için farklı bir dil kullanmak.
Dennis

3
@NotthatCharles: Gregory'e sordum ve 1 Ocak dedi.
Dennis,

Yanıtlar:


5

Görev 1, GolfScript, 8 bayt

~,{+}*.*

Martin'in CJam'ın cevabıyla aynı fikir .


Görev 2, QBasic, 74 71 bayt

INPUT a
r=a>1
FOR i=2 TO a-1
r=r*(a MOD i)
NEXT
?r*((a\2AND a)=a\2)

QB64 üzerinde , sözdizimi genişletme kapalı olarak test edilmiştir . 1 Programın büyük kısmı, verilen sayıların aasal olup olmadığını test ederek aher sayı 2 <= i< alarak ave sonuçları çarparak test eder. Sonuç, rsayı asal değilse 0, aksi halde sıfır değildir. Son satır AND, ikili gösterimin ahepsinin olup olmadığını , yani a2 n- 1 formunda olup olmadığını kontrol etmek için tamsayı bölmeli 2 ile bit yönünde kullanır . Miktarı ile çarpıldığında rbir sayı Mersenne asal ve aksi takdirde bazı sıfırdan farklı (truthy) değerinin değilse 0 (false) verir. ?kısayol PRINT.

Büyük Mersenne asal ben bir sonucu verir, 8191 test 1.#INFhala truthy edilir --which! ( IFEmin olmak için bir bildiri ile kontrol ettim .)

1 Bu programın anlamını değiştirmez. Yukarıdaki kodu standart DOS QBasic'e yazarsanız, fazladan boşluklarla otomatik biçimlendirilir, ancak tam olarak aynı şekilde çalışır.


Görev 3, Pyth, 6 bayt

ehc2SQ

Stdin'den bir Python tarzı liste okur. Buradaki ana sihir chop operatörüdür: bir int ve bir liste verildiğinde listeyi n parçaya böler. Böylece c2SQsıralanan giriş listesini ikiye böler. Uygun olarak, uzunluk tek olduğunda, ilk yarı daha büyük olandır, bu nedenle medyan her zaman ilk yarıdaki son elemandır. Bu ebir nd hpirzola sonuçlarının EAD.


Görev 4, CJam, 26 bayt

ri{_2%z\_0>\-2/_3$+?}h;]W%

Bu kısaltılabilir, sanırım.

Algoritma:

  • Tamsayıyı oku.
  • Değer 0 değilken yapın:
    • Abs al (% 2). Bu bir sonraki hane (ihmal?).
    • İ'yi -2'ye bölün.
    • Eğer pozitif değilse, sonuca abs (% 2) ekleyin. Bu, bir köşe durumunu düzeltmek içindir: 3, -1'e gider, ancak -3, 1'e değil 2'ye gitmelidir.
  • Gereksiz 0'ı bırakın, yığını bir dizide toplayın, ters çevirin ve yazdırın.

Bir do-while döngüsü olması, 0 olayla ilgilenir.


Görev 5, Bash, 50 bayt

echo pneumonoultramicroscopicsilicovolcanoconiosis

Açıklamak için çok fazla.


Görev 6, Python, 78 bayt

from datetime import*
d=date.today()
if d.day<2>d.month:print"Happy New Year!"

Python 2 gerektirir. Python'un zincir eşitsizliği işleçleri burada güzel bir şekilde kullanılabilir.


Görev 7, ActionScript, 82 bayt

x=""
while(x.length<64){c=chr(13312+random(6582));if(x.indexOf(c)<0)x+=c}
trace(x)

ActionScript , ECMAScript ailesinin bir üyesidir. Bu kod ActionScript 2'yi gerektirir - kod golf için çok daha iyi çünkü chrsürüm 3'lerin yerine kullanımdan kaldırılmış işlevleri kullanıyorum String.fromCharCode!

Çıktı konsol bölmesine:

Görev 7 ekran görüntüsü


Görev 8, Pip, 9 19 bayt

Regex çözümü pek işe yaramadı, işte bunun yerine dize işlemleri.

Fcab@>:o&:(b@?c)+1o

Pip için Github deposu .

İki dizeyi komut satırı argümanı olarak alır. Bir asonuç olduğunda , pozitif bir tamsayı (gerçek) verir; Aksi takdirde, sonuç nil (falsy) olur, bu hiç çıktı üretmez.

Açıklama:

                     Cmdline args -> a,b; o = 1 (implicit)
Fca                  For each character in a:
           b@?c      Find character's index in b (nil if not found)
          (    )+1   Add 1; all possible indices except nil are now truthy
       o&:           Logical AND with o
   b@>:              Slice b to everything at index o and afterward (Python b=b[o:])
                     (If c wasn't found, b becomes nil, but we don't care at that point)
                  o  Auto-print o

Görev 9, Prolog (SWI), 68 bayt

m(L,N,R):-L=[H|T],m(H,N,I),m(T,N,U),R=[I|U];L=[],R=[];R is L*N.

Prolog genellikle kod golfünde rekabetçi değildir, bu nedenle bu çözümden oldukça memnunum.

Liste ve sayı ve çıktı parametresi için giriş parametreli bir yüklem tanımlar . Tanımı üçlü bir bağlantıdır:mLNRm

  • Eğer Ledilebilir birleşik ile [H|T], içinde en az bir öğe ile bir listedir. mBu listenin başında ve kuyruğunda yinelemeli olarak arama yapın ve sonuçları tekrar bir araya gelen yeni bir listeye yerleştirin R.
  • Eğer Lile birleşik olabilir []Birleştir'me, Rile []sıra.
  • Aksi takdirde, Lbir sayı olduğu varsayılır; L*Nhesaplanır ve atanır R.

swiplUbuntu'da örnek çalıştırma :

dlosc@dlosc:~/golf$ swipl -qs arrayMult.prolog
?- m([1,2,3],5,R).
R = [5, 10, 15] .

?- m([[3,4],[5,6]],3,R).
R = [[9, 12], [15, 18]] .

?- m([[[1,2],[3,4]],[[5,6],[7,8]]],2,R).
R = [[[2, 4], [6, 8]], [[10, 12], [14, 16]]] .

Görev 10, C, 114 112 106 bayt

#define F;printf("\n");for(i=0;i<c;i++)printf(
i;t(c){F" ______  ")F"|      | ")F" ()--() ~");putchar(8);}

gccUbuntu'da test edildi . tTamsayı argümanı alan bir işlevi tanımlar . forMakro istismarı yoluyla yoğun olarak yoğunlaşmak için üç döngü kullanır . Bir izi silmek için geri silme karakterini kullanmak ~oldukça garip bir beyaz boşluk düzenine neden olur, ancakThe output may be surrounded by any amount of whitespace as long as it looks like in the example.

Örnek çalıştırma t(3):

dlosc@dlosc:~/golf$ ./a.out

 ______   ______   ______
|      | |      | |      |
 ()--() ~ ()--() ~ ()--() dlosc@dlosc:~/golf$

Ne yazık ki, görev 8 için kodunuz a.cbir ek olarak tanımlanır abc.
Dennis,

Yani @Dennis olduğu talihsiz. (Yine de iyi yakalama, teşekkürler.) 10 bayt pahasına düzeltildi.
DLosc

17

Huzzah, ilk önce bütün görevleri yerine getir! \Ö/

Görev 1, Perl, 32 bayt

$_=eval join"+",map$_**3,0..$_-1

-pBayrak için +1 bayt . Yorum: Perl garip .


Görev 2, CJam, 14 bayt

{_mp\)2mL_i=&}

İlk CJam programım!


Görev 3, GolfScript, 8 bayt

~$.,(2/=

STDIN girişini değerlendirin, sıralayın, uzunluk alın, azaltın, ikiye bölün ve ardından dizindeki sıralı dizinin ögesini alın.


Görev 4, Python, 77 bayt

def f(i,d=''):
 while i:i,r=i/-2,i%2;i+=r<0;r+=2*(r<0);d=`r`+d
 return d or 0

24 (!) Bayt'ı tıraş ederken @ mbomb007'ye, başka bir 11 için @ Sp3000'e teşekkürler.


Görev 5, Java, 66 bayt

String f(){return"pneumonoultramicroscopicsilicovolcanoconiosis";}

Sıkıcı. Daha sonra golfçü dillerine yer açmak için ayrıntılı bir dili burada bulabilirsiniz.


Görev 6, Bash, 39 bayt

((`date +%j`<2))&&echo Happy New Year\!

Bana öğrettiği için @manatwork teşekkürler %j, bu süreçte 10 byte tıraş.


Görev 7, JavaScript, 148 bayt

a=[];Array(65).join('x').replace(/./g,function(){while(a.push(s=String.fromCharCode(13312+Math.random()*6582))&&a.indexOf(s)==s.length-1);return s})

64'lü bir dize oluşturun x, daha sonra kullanılmış karakter dizisinde değilse, bu karakterlerden rastgele birini döndüren bir geri çağırma işleviyle hepsini değiştirin.


Görev 8, Pas, 130 bayt

fn f(a:String,b:String)->bool{let mut c=b.chars();for x in a.chars(){match c.find(|&y|x==y){Some(_)=>(),None=>return false}};true}

Evet, Rust golf oynamakta çok kötü.


Görev 9, Devekuşu, 18 bayt

{:n;'`\d+`{~n*}X~}

Sürüm 0.7.0 . Diziyi denetler, sayıları çoğaltılmış sürümlerine değiştirmek için bir regex değiştirir ve sonra sonuç dizesini yeniden değerlendirir.


Görev 10, Yakut, 58 bayt

->n{([' ______  '*n,'|      | '*n,' ()--() ~'*n]*$/).chop}

"\n"bir karakterden daha uzun "{actual newline}", bir karakterden daha uzun $/. {Belirsiz ancak çok sayıda} byte'ı çeşitli kara büyü hileleriyle tıraş etmek için @ MartinBüttner'e teşekkürler.


Görev 6 - $(…)`…`.
Manatwork

@ manatwork Teşekkürler, düzenlendi.
Doorknob

Tekrar düşünün, (kafein emilimi devam ediyor…), neden bu uzun% D formatı? [ `date +%j` = 001 ]Veya hatta ((`date +%j`<2)). ( date“Yılda% j gün (001..366)” formatını kesinlikle destekleyen GNU varsayalım.)
manat eseri

@ yönetim işi Ooh, çok güzel. Tekrar teşekkürler, cevabınıza eklendi.
Doorknob

Görev 4, ((num + 0xAAAAAAAA) ^ 0xAAAAAAAA) alg kullanılarak kısaltılabilir.
Jacob

15

Görev 1, 3var, 14 13 bayt

'><k*>#aa/>sp

( 3var için Esolang wiki sayfası )

'                  R = n
 >                 A = n
  <k               B = n-1
    *              R = A*B = n(n-1)
     >             A = n(n-1)
      #aa          B = 2
         /         R = A/B = n(n-1)/2
          >s       A = (n(n-1)/2)^2
            p      Output A

Bir kod noktası aracılığıyla girişi alır, örneğin alan 32'dir.

Neyse ki formülü uygulamak için gereken tüm işlemler n^2 (n-1)^2 / 4tek karakterlerdir (azaltma, çarpma ve kareleme), yine de B2'ye (sıfırlama-artış-artış) ayarlamak 3 bayt alır .


Görev 2, Retina, 38 33 bayt

^
1
^(..|.(..+)\2+|(.(..)+)\3*)$
<empty>

( Retina için Github deposu )

Her satır ayrı bir dosyaya girer, ancak yukarıdakiyle -sbayraktaki gibi ( <empty>hiçbir şeyle değiştirmeden ) sınayabilirsiniz . Giriş 1 sn ile aynı olmalıdır, örneğin 11111117 için.

Her bir regex değişiminin (bir çift satırla belirtilmiş) yaptığı şey:

  1. Cepheye 1 tane daha koyun
  2. Formun bir şey değiştirin 2, 1 + compositeya da not power of 2hiçbir şey.

Bu 1, diğer tüm sayılar yok edilirken, Mersenne astarlarına fazladan bir miktar ekler .


Görev 3, Raket, 71 bayt

#lang racket
(define(m x)(list-ref(sort x <)(quotient(-(length x)1)2)))

Lisp benzeri diller sadece çok endişe verici. Örnek çalışma:

> (m `(1 3 4 2))
2

Görev 4,> <>, 31 bayt

:?!v:2%:@-02-,
)?~\l1
!;n>l?

( > <> İçin Esolang wiki sayfası )

Yukarıdakiler 28 bayttır ve -vPython yorumlayıcısında başka 3 bayt için bayrak gerektirir , örneğin

$ py -3 fish.py negabinary.fish -v -137
10001011

Burada <<> ile ilgili güzel olan şey, rakamları tersten sırayla veren, yığın yazdıranlar için mükemmel olan modulo ve division ile rakamları tek tek hesaplayabilmemizdir.


Görev 5, Parentetik, 1448 1386 bayt

((()()())(()()()())((()())((()(())()))((()(())(())())((()(()))(()(())())((()(()))((())())((()()(()))((())()()()()()()()())((())()()()()()()()()()()()())))))))((()()())(()()())((()())((()(())()))((()()()())((()(()))(()(())())((())()()()()()()()()()()())))))((()(()))((()()())((())()()()()))((()()())((())()()))((()()()())((())()()()()))((()()())((())()()()()()()()()()))((()()())((())()))((()()())((())()()()))((()()())((())()()))((()()())((())()()()))((()()())((())()()()()()()()()()))((()()())((())))((()()())((())()()()()()()()()))((()()())((())()()()()()()))((()()()())((())))((()()())((())()))((()()()())((())()()()()()()()()))((()()()())((())()()))((()()())((())()()()()()()))((()()())((())()()()))((()()())((())()()()()()()()))((()()()())((())()()))((()()())((())()()()))((()()())((())()()()()))((()()()())((())()()()()()()()()))((()()()())((())()()))((()()())((())()()()()()()()))((()()()())((())()()()()()()()()))((()()())((())))((()()()())((())()()()()()()()()))((()()()())((())()()))((()()())((())()()()))((()()())((())()()()()()()()()()()))((()()())((())()()()))((()()())((())))((()()()())((())()()))((()()()())((())))((()()())((())()()))((()()())((())()()()))((()()()())((())()()))((()()())((())()()()))((()()())((())()()))((()()()())((())()()()()()()()()))((()()())((())()()()))((()()())((())()()()()()()()))((()()()())((())()()()()()()()()))((()()())((())()()()()()()())))

( Parentetik için Github deposu )

Bunun için diziden daha kısa olan bir CJam cevabım var, fakat onu kullanamıyorum bu yüzden başka bir yoldan gideceğimi düşündüm.

Python 3 üreten kod:

char97 = "((()()())(()()()())((()())((()(())()))((()(())(())())((()(()))(()(())())((()(()))((())())((()()(()))((())()()()()()()()())((())()()()()()()()()()()()())))))))"
char108 = "((()()())(()()())((()())((()(())()))((()()()())((()(()))(()(())())((())()()()()()()()()()()())))))"
open_str = "((()(()))"
close_str = ")"

target = "pneumonoultramicroscopicsilicovolcanoconiosis"
output = [char97, char108, open_str]

for c in target:
    if ord(c) >= 108:
        output.append("((()()())((())%s))"%("()"*(ord(c)-108)))
    else:
        output.append("((()()()())((())%s))"%("()"*(ord(c)-97)))

output.append(close_str)
print("".join(output))

İşte karşılık gelen Lisp benzeri kod:

(define f (lambda (n) (char (+ n 97))))
(define g (lambda (n) (f (+ n 11))))

(+
   (g 4)  // p
   (g 2)  // n
   (f 4)  // e
   ...
)

Görünüşe göre , bir sürü bayttan tasarruf sağlayan olarak defineadlandırarak geçersiz kılmak tamam oldu .g()()


Görev 6, CJam, 26 bayt

XY]et1>>"Happy New Year!"*

Bu kontroller [month day]yerel saat dizisinin bir parçası daha azdır [1, 2].


Görev 7, Python, 73 bayt

from random import*
print(*map(chr,sample(range(13312,19894),64)),sep="")

Sadece basit bir Python 3 uygulaması.


Görev 8, Başlangıç, 46 41 bayt

?(?)#(#)?(v-(#)?)10)!
      ^      1 # (0

( Prelude için Esolang wiki sayfası )

Bunun işe yaradığını düşünüyorum - muhtemelen hâlâ golf oynamaktadır, ancak Prelude'de önemsiz bir golf oynayan ilk seferim. Giriş biçimi <needle>NUL<haystack>burada, NULbir 0x00. Bu NUMERIC_OUTPUT = True, Python yorumlayıcısında en iyi şekilde çalışır , çünkü çıktı 1veya 0uygun şekilde yapacaktır .

Prelude'u seçtim çünkü bu görev için onu çok güzel yapan iki özellik var:

  • Yığın tabanlıdır, bu nedenle ilk önce iğneyi okuyabilir, ardından bir kerede bir kömür yığını işleyebilir ve
  • Prelude'nin yığınında altta sonsuz sayıda 0 bulunur, bu nedenle iğnenin karakterlerin tükendiği durumu ele almanıza gerek yoktur.

Prelude NOT operatörü olsaydı bu daha iyi olurdu.

İşte dağılım:

?(?)#    Read input up to the NUL, discarding the NUL afterwards

(#)      Move the needle to the second voice, effectively reversing the stack
 ^

?(...?)  Read haystack

  v-     Compare top needle char with haystack char by subtraction

  (#)    If equal, pop the needle char
   1 #

10)!     Output 1 if the top needle char is 0 (bottom of stack), 0 otherwise
(0

(@ MartinBüttner sayesinde -5 bayt)


Görev 9, Mathematica, 4 bayt

#2#&

Bunun gibi bir şey 2 {{0, 1}, {1, 0}}Mathematica'da dolaylı olarak çarpmadır, bu nedenle bu argümanları yan yana getirir.

Tarafından belirtildiği gibi @MartinButtner ve @alephalpha , 1##&başka 4 bayt cevaptır. Bir açıklama için birincisine bakınız.


Görev 10, Demiryolu, 246 237 bayt

$'main'
 0/aima19-@
@------e<
         -(!!)()[ ][ ______ ]{f}[\n\]o()[ ][|      |]{f}[\n\]o()[~][ ()--() ]{f}#
$'f'                 #           #
 -(!x!)(!y!)(!!)()0g<  -(x)o()1g<  -(y)o()1s(y)(x){f}#
                     -/          -/

( Demiryolu için Esolang wiki sayfası )

Trende trenle ilgili bir görevi yapma fırsatını bulamadım :) :) Beyaz alan oldukça golf tutkunu görünüyor, ancak üç sıra alarak dallanmayla kompakt hale gelmesi biraz zaman alacak.

Giriş, STDIN aracılığıyla bir tamsayıdır, ancak bir EOF olması gerekir. Sol üst kısım

 0/aima19-@
@------e<

EOF olmasa da girişi bir tam sayıya dönüştüren bir atoi döngüsüdür ( ekomut tarafından kontrol edilir ).

fSon üç satırdaki işlev x, y, ndizge x nzamanlarını alır ve ayırarak ayırır y. Bu fonksiyon özyinelemelidir ve nsıfıra gelinceye kadar her defasında bir defa azaltılır. fHer satır için farklı dizeleri sağlayan üç kez denir. Garip bir şekilde, Rail değişken isimlerinin boş olmasına izin verir, bu da birkaç byte tasarruf eder.

Dan bayt çoğu maalesef gelip (!x!)yığın ve değişkene atar onu üst çıkar ki, xve (x)hangi iter, xyığının üzerine. Bu gereklidir, çünkü Rail'de yinelenen operatör yok (!x!)(x)(x), yığının tepesini kopyalamanın tek yolu bu.


Görev 2 rs'de olsaydı, 2 bayt tasarruf edersiniz ve unary yerine sayı almak sadece 14 byte eder. ;)
kirbyfan64sos

Raket gördüğümde parantez sevdiğini düşündüm; ama parantez ...
bunyaCloven 26:15

13

Görev 1, CJam, 7 bayt

q~,:+_*

Sadece bunun için (muhtemelen) optimum CJam çözümünü almak istedim. İlk toplamı gerçeği kullanır n küp kare n'inci kendisi ilk toplamıdır üçgen sayı, n tamsayılar.

Burada test et.


Görev 4, Fisyon, 173 88 78 69 68 bayt

Fission için GitHub deposu.

 /@\O/S@+>\
^{ }[<X/ @/;
,\?/@\J^X\
'M~\$ $
UK/W%@]  /
D
?\{\/
0'A Y

Benim ikinci oldukça karmaşık Fisyon programım. :)

Giriş formatı biraz garip. Negatif girdileri desteklemek için ilk karakterin ya +da -işareti göstermesi bekleniyor . İkinci karakterin bayt değeri, girişin büyüklüğüdür (Fission doğal olarak tam sayıları okuyamaz). Yani eğer istersen STDIN'e 111iletebilirsin +o. Ve eğer -56onu geçmek istiyorsan -8. Yerine +ve -sırasıyla, bir düşük veya yüksek karakter kodu ile herhangi bir karakter kullanabilirsiniz. Bu, -n( echoörneğin, bir argüman olarak kabul edebileceğiniz) gibi bir şeyi iletmek için yararlı olabilir 0n.

Olumlu bir sayının olumsuz ifadesini nasıl bulabileceğimize bakalım. Sayıyı en azdan en önemli bit'e kadar hesaplamak istiyoruz (bu bitleri bir yığına iter ve sonunda doğru sıraya koymak için hepsini yazarız). İlk hane daha sonra sayının sadece paritesidir ve işleme devam etmek için sayıyı 2'ye böleriz. Bir sonraki hane şimdi negatif (-2 değerine sahip) - ancak 2 bit normal bir ikili sayıya ayarlandığında bu bitin ayarlanacağına dikkat edilmelidir. Tek fark, -2'ye pozitif değerde yüksek rakamlarla karşı koymamız gerektiğidir. Yani yaptığımız şey şu:

  • Pariteyi tekrar belirliyoruz - bu bir sonraki sıkıntıdır - ve önceki gibi 2'ye bölün.
  • Bu basamak bir olsaydı 1, biz amacıyla 1 ile kalan sayı artırmak karşı-etki eden çeşitli negatif bit (bir negabit ve biraz arasındaki fark bir kez aşağıdaki daha anlamlı bitin değerine).

Şartlı burada bir ekleme sayıda yuvarlama denk olduğunu fark kod sonuçların büyük bir basitleştirme kadar bölünen bir tam sayı (atılır biraz 1 ise, biz 1 ile tamsayıdır bölünmüş sonucu artırmak) oluşur.

Sonra, bir sonraki bit sadece pozitif bir değerdir, bu yüzden normal olarak belirleyebiliriz. Bu, bir kerede iki bit hesaplayan, kalan sayı için yuvarlama ve yuvarlama arasında değişen bir döngü istediğimiz anlamına gelir, ancak ortadaki döngüye girmek istiyoruz, böylece yuvarlama ile başlıyoruz.

Negatif tamsayıları nasıl ele alabiliriz? Sorun, Fission'ın negatif tamsayılarda keyfi bir aritmetik yapamaması, çünkü kitleler her zaman negatif değildir. Bu yüzden, büyüklükle çalışmak ve işareti başka bir yerde tutmak gibi gerçekten karmaşık bir şey yapmak zorunda kalacaktı. Bununla birlikte, negatif bir sayının negatif gösterimi, ilgili bir pozitif sayıya dayanarak hesaplanabilir:

Eğer , n negatiftir, bir negabinary temsil hesaplamak n / 2 (yuvarlak kadar ) ve parite ekleme n .

Bu tam olarak iki bit döngümüzün ilk adımıdır. Dolayısıyla, yapmamız gereken tek şey, işaret negatifse, çevrimi farklı bir noktadan başlatmak.

173 orijinal bayttan elde edilen tasarrufların çoğu, üç parite kontrolünü ve iki bölümlü bir döngüyü, tek bir parite kontrolüyle tek bir döngüye sıkıştırmamı sağlayan içgörüden kaynaklandı.

Tüm kodları ayrıntılı olarak açıklarsam, bu gönderi çok uzun sürecek, ancak kontrol akışının kaba düzenini vermek için birkaç bölüme değineceğim ve detayları Fission referansı ile çözebilirsiniz.

 /@\
^{ }[
,\?/
'
U
D
?

Bundan başlayarak D, bu enerjinin içine bir işaret biti okur ve [(sağa doğru) biten bir atomun kütlesindeki büyüklüğü gösterir . Bu işaret biti, parite kontrolünden her geçişten sonra değişecek ve döngü girişinin yuvarlanmış veya yuvarlanmış yarısını koruyacağımızı belirleyecektir.

     /S@+>\
    [<X/ @/
 \  @\J^X\
 M  $ $
 K  %@]  /

Bu, bireysel bitleri hesaplayan ve doğru yarısını bir sonraki yinelemeye besleyen döngüdür. SVe Jcari işaret bitine göre sağ yarısında bir kopyasını oluşturmak için kullanılır, Xs kopyalama yoktur. >Sağ üst köşedeki sonra yığına gönderilen gerçek bit hesaplar Kdaha sonra alınmak üzere. Sağ üst köşenin düzenini oldukça şık ve Fission ile ilgileniyorsanız kesinlikle detaylı çalışmaya değer olduğunu düşünüyorum.

Bu %, sayıyı 0'dan büyük olduğu sürece tekrar döngüye besleyen bir anahtardır.

    O


 M~\
 K/W%

 \{\/
0'A Y

Sayı 0'a ulaştığında, bunun yerine aşağı yansır. Bu, bitleri yığından alan, karakter koduna ekleyen 0ve basan başka bir döngü başlatır O. Yığın boşaldığında program sona erer, çünkü kontrol atomu yığının üzerine itilerek sona erer (ve daha sonra artık hareket eden atom kalmaz).


Görev 5, Başlangıç, 219 179 96 bayt

Prelude için Esolangs sayfası.

Prelude için Stack Snippet yorumlayıcısı.

29+129+716705-7607-05-4759+705-14129+05-18705-29+719+05-1507-19+39+449+767549+03-68(67+^+^+^++!)

Bu standart, üç elli, standart el yapımı sabit çıkışlı bir Prelude programı olarak başladı. Sp3000 ile biraz sohbet ettikten sonra tek bir ses denemeye karar verdim. Bunun oldukça iyi çalıştığı ortaya çıktı, çünkü eski harfleri yeniden kullanmak çok daha kolay. Daha sonra Dennis bana birkaç ipucu verdi ve şu anki versiyonu buldum: fikir, tüm ofsetleri mektuptan htek bir sesin yığınına ters sırayla bastırmak ve sadece bir defada bir defada basmak. dizgede hhiçbir şey olmadığı hiçin (bu önemlidir - aksi halde 0ofset, döngüyü sonlandırır) ve ofsetlerin iki basamaklı ve negatif ofsetler açısından kodlanmasını en aza indirdiği için seçilir .

Ofset kodlaması bu CJam betiği ile üretildi .


Görev 8, Mathematica, 28 bayt

LongestCommonSequence@##==#&

Yerleşikler için Yay. (Mathematica adlı isimlendirme ... Burada biraz garip LongestCommonSubsequenceen uzun ortak bulur alt dize ederken LongestCommonSequencebulur en uzun ortak sonradan gelme .)


Görev 9, J, 1 bayt

*

APL ve K cevaplarıyla aynı, fakat henüz kimsenin J almadığı anlaşılıyor.


Görev 10, Retina, 67 60 bayt

Retina için GitHub deposu.

(.*).
 ______  $1<LF>|      | $1<LF> ()--() ~$1
+`(.{9})1
$1$1
~$
<empty>

Her satır ayrı bir dosyaya gider ve <LF>yeni satır karakteriyle değiştirilmeli ve <empty>boş bir dosya olmalıdır. Bunların hepsini aynı zamanda tek bir dosyaya koyabilir ve -sseçeneği kullanabilirsiniz , ancak bu yeni satır karakterlerinin <LF>henüz yerine gömülmesine izin vermez . Bunun gibi bir şey yaparak taklit edebilirsiniz

echo -n "111" | ./Retina -s train.ret | ./Retina -e "<LF>" -e "\n"

Yukarıdaki örnekte gösterildiği gibi, girişin birleşik olması bekleniyor. Kodun amacı, her biri karşılık gelen satırın bir kopyasına sahip, unary girişin üç kopyasını (eksi 1) oluşturmaktır. Daha sonra, 1tüm 1s'ler geçinceye kadar önündeki son dokuz karakteri tekrar tekrar çoğaltır , böylece satırları gerektiği gibi tekrarlarız. Sonunda, yabancı izleri kaldırdık ~.


10

Eh, sanırım bir çiftle başlayacağım. İlk kez golf oynuyorum.

Görev 1, Python, 38 21 bayt

lambda n:(n*n-n)**2/4

Tüm küplerin bir listesini x'e topla. Xnor sayesinde değiştirilmiş ifade

Görev 2, TI-Basic 89, 244 bayt

Func
If iPart(log(x+1)/log(2))=log(x+1)/log(2) Then
 Return log(x+1)/log(2)
Else
 Return 0
EndIf
EndFunc
Func
If isPrime(x)=false
 Return 0
If ipart(log(x+1)/log(2))=log(log(x+1)/log(2)) Then
 Return log(x+1)/log(2)
Else
 Return 0
EndIf
EndFunc

Bunda% 100 kesin değil, hesap makinem için yeni piller bulduğumda test edecek. isPrime yerleşiktir, ipart tamsayıdır (2.3 -> 2)

Görev 3, Perl, 45 34 Bayt

@n=sort{$a-$b}@ARGV;print$n[$#n/2]

perl dosyası 1 2 3 4 -> 2. @ nutki sayesinde birkaç bayt kaydedildi. Değişkene kaydetmek yerine yazdırılır, sonra değişken yazdırılır.

Görev 4, Ruby, 43 40 bayt

x=2863311530
p ((gets.to_i+x)^x).to_s(2)

En azından 1.9'da çalışıyor, 1.8 hakkında bir şey bilmiyorum. İkili dosyada '10' * 16 (veya 2863311530) artı bir sayı, x veya buna göre 10101010 ... negatuardır. Tırnaklı bir dize temsili verir (3 -> 111 yerine 3 -> "111"). Daha az karakterle x yazmak için matematik bulamıyorum.

Görev 5, Malbolge, 682 354 bayt

D'``_]>n<|49ixTfR@sbq<(^J\ljY!DVf#/yb`vu)(xwpunsrk1Rngfkd*hgfe^]#a`BA]\[TxRQVOTSLpJOHlL.DhHA@d>C<`#?>7<54X8165.R2r0/(L,%k)"F&}${zy?`_uts9Zvo5slkji/glkdcb(fed]b[!B^WVUyYXQ9UNrLKPIHl/.JCBGFE>bBA@"!7[;{z276/.R2r0)(-&J$j('~D${"y?w_utyxq7Xtmlkji/gf,MLbgf_dc\"`BA]\UyYXWP8NMLpPIHGLEiIHGF(>C<A@9]7<;:3W7w5.-210/(L,%k#('~}C{"y?`_uts9wpXn4rkpoh.lNMiha'eGF\[`_^W{h

Burada çevrimiçi test edin Bunun, gidebileceği kadar kısa olduğunu düşünün. Elimden geldiğince golf oynadım. 300 bayt kaydedildi, yani?

Görev 6, bash, 62 50 40 bayt

[ `date +%j`=1 ]&&echo 'Happy New Year!'

Başka bir gönderiden% j hakkında bilgi edinin.

Görev 10, Befunge-98, 121 Bayt

>&:>1-:" ____"v
   |,k8: '"__"<
   >a,$:>1-v
      > |
>' 8k,^ #
^|':k4 '|':<
v ',*25$<
>,:1-: ")(--)("v
^," ~"_@#,k6" "<

Befunge-98 olarak değiştirildi. Eski Befunge-93, 227 157 147 bayttır. Kullanılmış Mantarlar, test için Haskell'de yazılmıştır . "K defa çarpı yap" kullanılır ve 'ile birlikte tek karakter eklenir. 110 ya da daha azına golf oynayabileceğime dair bir hisim var, ama bunun için çok fazla zaman geçirdim ...


@Dennis ana yazıya sormadığım için burada soracağım. Boşluk ayrılmış giriş, görev 3 için uygun mu? [] İçinde olmayacak.
Jacob

Neye ihtiyacın olursa olsun.
Dennis,

1
Sen ile küp toplamını kısaltabilir formülü olaraklambda n:(n*n-n)**2/4
XNOR

0=fPart(expression) rather than TI-89 BASIC cevabında iPart (expression) = expression` kullanabilirsiniz .
lirtosiast

1
Python 2/3 gibi bir şey hakkında konuşurken bu argümanın iyi çalışmadığını düşünüyorum. Örneğin, 'n` 2'de str (n)' den daha iyi çalışıyor, ancak 3'te çalışmıyor. Şu anda başka örnekler düşünemiyorum, daha çok cevap veren golfle daha fazla ilgileniyorum: p
Jacob

9

İlk şey: Görev 6 teknik gelmez DEĞİL saymak; Bir saat önce unc yükledim . Ancak, bu sabah neredeyse yükledim, ancak önce bir test paketi yazmaya karar verdim. Salak.

Neyse, işte gidiyor!

Unc olaylarının kasıtlı olarak geriye doğru olduğunu unutmayın, bu yüzden &&gerçekten demek ||ve böyle, bu nedenle bazı işlemler garip görünüyor (örneğin -küpü hesaplamak için).

Görev 1, Haskell, 21 bayt

f n=sum$map(^3)[0..n]

Görev 2, Hy, 135 bayt

(import math)(fn[n](and(if(and(not(% n 2))(> n 2))false(all(genexpr(% n i)[i(->> n(math.sqrt)int inc(range 3))])))(->> n dec(& n)not)))

Görev 3, Dart, 37 bayt

İlk Dart fonksiyonum!

f(l){l.sort();return l[l.length~/2];}

Görev 5, ARA, 1047 bayt

DO ,1 <- #46
DO ,1SUB#1 <- #242
DO ,1SUB#2 <- #152
DO ,1SUB#3 <- #208
PLEASE DO ,1SUB#4 <- #248
DO ,1SUB#5 <- #248
DO ,1SUB#6 <- #192
PLEASE DO ,1SUB#7 <- #128
DO ,1SUB#8 <- #128
DO ,1SUB#9 <- #72
PLEASE DO ,1SUB#10 <- #120
DO ,1SUB#11 <- #8
DO ,1SUB#12 <- #224
PLEASE DO ,1SUB#13 <- #200
DO ,1SUB#14 <- #208
DO ,1SUB#15 <- #32
PLEASE DO ,1SUB#16 <- #208
DO ,1SUB#17 <- #120
DO ,1SUB#18 <- #88
PLEASE DO ,1SUB#19 <- #40
DO ,1SUB#20 <- #8
DO ,1SUB#21 <- #208
PLEASE DO ,1SUB#22 <- #232
DO ,1SUB#23 <- #120
DO ,1SUB#24 <- #208
PLEASE DO ,1SUB#25 <- #248
DO ,1SUB#26 <- #56
DO ,1SUB#27 <- #96
PLEASE DO ,1SUB#28 <- #160
DO ,1SUB#29 <- #208
DO ,1SUB#30 <- #208
PLEASE DO ,1SUB#31 <- #136
DO ,1SUB#32 <- #120
DO ,1SUB#33 <- #192
PLEASE DO ,1SUB#34 <- #112
DO ,1SUB#35 <- #64
DO ,1SUB#36 <- #16
PLEASE DO ,1SUB#37 <- #128
DO ,1SUB#38 <- #48
DO ,1SUB#39 <- #208
PLEASE DO ,1SUB#40 <- #128
DO ,1SUB#41 <- #224
DO ,1SUB#42 <- #160
PLEASE DO ,1SUB#43 <- #40
DO ,1SUB#44 <- #56
DO ,1SUB#45 <- #200
PLEASE DO ,1SUB#46 <- #126
PLEASE DO READ OUT ,1
DO GIVE UP

Görev 6, unc, 157 bayt

!include>=fgQVb%U<=
!include>=gVZR%U<=
false lRNe[]<<gVZR_g t:=gVZR[5]:volatile gZ m:=-YbPNYgVZR[&t]:for[#m%gZ_Zba||m%gZ_ZQNl!=6]chgf[L'uNccl ARj LRNe#']:>>

Görev 8, rs, 42 bayt

#
+#(.)(.*) .*?\1/\1#\2 
.*# .*$/1
[^1]+/0

Canlı demo.

Görev 10, Pyth, 46 bayt

jb(j*d2m+\ *\_6Qjdm"|      |"Qj\~m" ()--() "Q)

Canlı demo.


@Dennis Oops! Sabit!
kirbyfan64sos

1
Bilmiyorum, bilmiyorum ama eminim ki birine ihtiyacın yok !include. Hangisi olsa tam olarak emin değil.
Dennis

@Dennis Birincisi stdio.h, ikincisi time.h. İkisine de ihtiyacım var.
kirbyfan64sos

uncC kodunu derlemek için ne işe yarar? GCC olmadan gayet iyi çalışacak stdio.h. Bundan emin değilim time.h.
Dennis

@Dennis unc ayarlanmış bir derleyiciye sahip değil. Sadece C kodunu verir; Onu kendim derlemeliyim. Ancak, bu yapar mantıklı; Daha sonra kontrol edeceğim.
kirbyfan64sos

8

Görev 1, APL, 7 bayt

+/3*⍨⍳⎕

Şunları yapabilirsiniz çevrimiçi denemek herhangi APL uygulanması ile çalışacaktır gerçi, ngn / apl kullanarak o bir 0 endeks kökenli varsayılan.

Bu, her bir tamsayı 0'dan girişe ( ⍳⎕) -1 , argümanları güç operatörüne ( *) commute ederek ( ) -1 küpler . Elde edilen vektör toplanarak ( +/) toplanır ve bir skaler döndürülür.


Görev 2, Julia, 42 bayt

n->(isprime(n)&&int(log2(n+1))==log2(n+1))

Bu, giriş kadar tam sayı kabul eden ve bir boole döndüren adsız bir işlev oluşturur. Aramak için bir isim verin, örneğin f=n->....

İlk önce Julia'nın yerleşik fonksiyonunu isprimekullanarak nasal olup olmadığını kontrol ediyoruz . Öyleyse, bunun log2(n+1)bir tamsayı olduğunu kontrol ederiz . Eğer öyleyse, bazıları niçin yazılabilir ve bu yüzden bir Mersenne üssü.2^k-1kn


Görev 3, ELI , 19 bayt

{f:x[<x][~.0.5*#x]}

Bu f, giriş vektörünün medyanını döndüren bir monad yaratır .

Ungolfed + açıklama:

{f:         // Define a function f
 x[<x]      // Sort the input vector
 [          // Select the element at index...
 ~.0.5*#x   // ceiling of 0.5 * length(input)
]}

Örnekler:

    f 1 2 3 4
2
    f ?.!20   // Apply f to 20 random integers in 1..20
4

Görev 4, Octave, 39 bayt

@(n,x=2863311530)dec2bin(bitxor(n+x,x))

Bu, bir tamsayıyı girdi olarak kabul eden ve ilişkili negabinary dizesini döndüren bir işlev tanıtıcısı oluşturur. Aramak için, bir isim verin, örneğin f=@...ve birlikte çalıştırın feval(f, <input>).

Şunları yapabilirsiniz çevrimiçi denemek .


Görev 5, CJam, 47 bayt

"pneumonoultramicroscopicsilicovolcanoconiosis"

Dize sadece STDOUT'a basılmıştır. Şunları yapabilirsiniz çevrimiçi denemek bu kadar eğimli hissediyorsan.


Görev 6, Windows Toplu İşi, 46 bayt

if "%date:~4,5%"=="01/01" echo Happy New Year!

Değişken %date%, formdaki geçerli tarihi içerir Thu 06/25/2015. Biz ilk 4 karakter atlama sonra uzunluğu 5 alt dizeyi alarak ay ve gün seçebilirsiniz: %date:~4,5%. Oradan sadece 1 Ocak olup olmadığını kontrol edip, Yeni Yılınız Kutlu Olsun deriz.


Görev 7, Pyth, 26 bayt

=Gr13312 19895FNU64pC.(.SG

İlk olarak G13312 ile 19894 arasında dahil olanları tayin ediyoruz. Daha sonra 64 kez döngü yaparız ve her yinelemede shuffle G( .SG) yaparız , son elemanı ( .() çıkarır ve geri döndürürüz ve karakter gösterimini ( pC) basarız .

Şunları yapabilirsiniz çevrimiçi denemek .


Görev 8, Ruby, 36 bayt

def f(a,b)!b.tr("^"+a,"")[a].nil?end

Bu, fiki dizeyi kabul eden ave içinde bulunacak dizgenin bnerede aolduğunu tanımlayan bir işlevi tanımlar b.

Her şey ama karakterler akaldırılır bkullanarak .tr()ve sonuç içerip içermediğini kontrol ederiz aaynen kullanarak []. Bu nil, dize bulunmazsa geri döner , bu yüzden !ile kullanarak bir boolean değeri alabiliriz .nil?.


Görev 9, R, 16 bayt

function(x,n)n*x

Bu dizi ya da matris herhangi bir kabul eden bir isimsiz fonksiyon nesnesi yaratır xve bir tam sayı nve çoğalır her bir elemanının xile n. İsterseniz çevrimiçi deneyebilirsiniz .


Görev 10, Python 3, 92 bayt

n=int(input())
l="\n"
w=" ()--() "
print(" ______  "*n+l+"|      | "*n+l+(w+"~")*(n-1)+w)

Oldukça basit. Şunları yapabilirsiniz çevrimiçi denemek .


APL'nin yanıtı 7 bayt değildir, çünkü daha yüksek aralıklarda üç Unicode karakteri vardır.
Tom

6
@ Tom: Her cevap en uygun kodlamayı seçebilir. Gelen APL kod sayfasında , bir karakter bir byte olduğunu.
Dennis

Kendinizi çok eğimli hissediyorsanız çevrimiçi deneyebilirsiniz :-D
Luis Mendo

7

Görev 1,> <>, 10 + 3 = 13 bayt

::*-:*4,n;

Bayrağı kullanarak resmi Python yorumlayıcısını kullanarak çalıştırın -v(3 bayt pahasına). Bu kareler miktarı (n - n*n)ile bölünerek 4tabii kare alma eşdeğerdir, (n*n - n)ve bölünmesi 4.

Görev 2, GAP, 63 62 bayt

b:=function(m)return[2]=AsSet(Factors(m+1))and IsPrime(m);end;

(Eşitliği diğer tarafa yazarak bir yerden tasarruf sağlayın.)

Görev 3, R, 43 39 bayt

f=function(v)sort(v,d=T)[length(v)%/%2]

Güzel gelişme için Plannapus'a teşekkürler!

Görev 4, Piet, 155 135 115 5 * 19 = 95 kodlayıcı

görüntü tanımını buraya girin

Bu çevrimiçi tercümanı kullanarak codel boyut 13 ile test edin. Veya tercih ettiğiniz tercümanı kullanın - dilediğiniz bir tane varsa bana bildirin!

0Girdi için boş dize yerine çıktı yapmak 0sakıncalıydı. Bu olayla ilgilenmek için if-o zamanın başlangıcına yakın bir yer kullandım; sonra sıfır olmayan durumdaki sayıları hesaplamak için while-döngüsü ve sonunda yığından basamakları çıkarmak için sonunda bir başka while-döngüsü.

Sp3000'e çok yardımcı yorumlar için çok teşekkür ederim, bu da bazı kodlayıcıları korumama yardımcı oldu!

Görev 5, Lua, 52 bayt

print"pneumonoultramicroscopicsilicovolcanoconiosis"

Burada deneyebilirsiniz .

Görev 6, LaTeX, 157 139 136 127 128 bayt

\documentclass{book}\begin{document}\count1=\day\multiply\count1 by\month
\ifcase\count1\or Happy New Year!\else~\fi\end{document}

Günün ve ayın ürünü ise 1, mesajı yazdırın; Aksi takdirde, hiçbir şey. (Yeni Yıl Günü bu tasarım için özellikle uygundur: aradığımız çıktı olduğundan 1, sadece bir orifadeye ihtiyacımız var . nTh orifadesi değer için davranışları belirtir n.)

Not: Önceki sürümümde satır dönüşü eksikti, bu bir hataydı. (Bu işlevi test etmeye çalıştım, ancak gerçekten doğru bir şekilde test etmek biraz zaman alabilir ...)

Orijinal versiyonum calc, mevcut versiyonumdan çok daha uygun olan paketi kullandı . "Gerçek hayat" için akılda tutulması gereken bir şey!

Görev 7, Ruby, 62 bayt

for r in Array(13312..19893).sample(64)
puts [r].pack('U*')end

Görev 8, JavaScript, 78 bayt

h=function(l,m){u=1+m.indexOf(l[0]);return(!l||u&&h(l.substr(1),m.substr(u)))}

Özyinelemeli çözüm, lbir alt dize olup olmadığını test m. Eğer lboşsa !lsonuçlanır trueve fonksiyon sonlandırır. (Bu durumda, l[0]tanımsız, ancak JavaScript o sorun yok edilir.) Aksi halde ilk örneği arar l[0]içinde m. Bir tane bulamazsa, m.indexOf(l[0])sonuçlanır -1ve usonuçlanır 0ve işlev sona erer.

Aksi halde, ilk girişini lve ilk ugirişlerini mçıkarır ve kontrol etmeye devam eder.

Görev 9, Python, 72 60 bayt

def i(a,n):
 try:return[i(c,n)for c in a]
 except:return n*a

aArtık bir liste değil, sadece bir tamsayı olan "en düşük seviyeye" inin , sonra çarpmayı gerçekleştirir.

Beni 12 bayt kurtardığı için Dennis'e çok teşekkürler!

Görev 10, Mükemmel, 81 bayt

def j(n){(' ------  '*n+'\n'+'|      | '*n+'\n'+' ()--() ~'*n).substring(0,27*n)}

Burada dene . Başlangıçta, Python'un .join()belirli bir "bağlantı ipi" (tren arabaları arasındaki bağlantılar gibi) ile birlikte dizeleri koyan dizeler için olan yöntemi gibi bir şey uygulamaya çalıştım . Fakat bu tasarruf ettiğinden çok daha pahalıya mal oldu.

Umarım, bu çeşitli dillerde kabul edilebilir cevaplar için herhangi bir sözleşmeyi yerine getirmemişimdir, ancak varsa lütfen bana bildirin.

Dennis'e fantastik bir meydan okuma için teşekkür ederim!


except:return n*aGörev 9 için birkaç bayt kaydeder. Görev 1 için -vbayrağı bir bayt olarak sayardım.
Dennis,

@Dennis Bu meta postayı görün . Her ne kadar, bu meta yazıyla , muhtemelen -vbayrakla değiştirebilirsin i(her iki versiyonun da daha kolay test edilmesi için söz edildiyse iyi olacağını düşünüyorum).
Sp3000,

@Dennis, akıllı gelişiminiz için çok teşekkürler!
mathmandan

1
3 bayt yukarıdaki meta yayını ile doğru (boşluk -,, v). Demek istediğim, italimatlar aracılığıyla girişi bir kod noktası olarak alma seçeneğiniz var .
Sp3000,

1
btw, # 4 için negatif modülo garip değil - sadece dilden dile değişir (örneğin, Java bunu bellekten yapar). Yığının tamamını çıkarmanın bir yolu, çıktının içinde olmayacağını bildiğiniz yığının altında bir şey tutmak ve o özel karakter olmadığında karakter yazdırmaya devam etmek olabilir. Ayrıca, PietCreator var .
Sp3000,

6

Görev 1, Pyth, 5 bayt

s^R3Q

Stdin'den sayı alır. Yararsız işaret için teşekkürler @ Jakube U.

Görev 6, javascript, 56 bayt

if(Date().slice(4,10)=="Jan 01")alert("Happy New Year!")

Görev 7, CJam, 16 bayt

6581,mr64<'㐀f+

Aralık üretir, karıştırır, ilk 64'ü seçer ve başlangıç ​​değerinin eklenmesini ve karaktere dönüştürülmesini eşler. 14 karakter, 16 bayt.

Görev 8, Octave, 23 bayt

@(x,y)intersect(x,y)==x

Anonim işlevi tanımlar.

Görev 5, PHP, 45 bayt

pneumonoultramicroscopicsilicovolcanoconiosis

Sıkıştırma yok, sadece yazdırır.

Görev 9, APL 1 bayt

 ×

K cevabı ile aynı.


@Dennis Ben de bilmiyorum - Ben sadece önseziliştim ve bu cevabı test etmeden bir araya getirdim :). Şimdi bir öykünücüyü test etmeye çalışacağım.
Maltysen

@Dennis oh haklısın, orta 2 ortalama, onu alarak.
Maltysen

1
O alanda ne işin var .slice(4, 10)?
LegionMammal978

@Dennis derrrp. üzgünüm.
Maltysen

1
"An" ile biten sadece bir aylık kısaltma var, böylece test ederken J'den ayrılabilirsiniz. (Yapılması da önemli ölçüde kısalır /an 01/.test(Date()).)
Yapması NinjaBearMonkey

6

Görev 1, R, 21 19 bayt

sum((1:scan()-1)^3)

Yeterince açıksözlü. STDIN'den giriş.

Görev 2, Perl, 40 66 bayt

$a=log(<>+1)/log(2)+1;print$a==int($a)&&(1x$a)!~/^1?$|^(11+?)\1+$/

Bir ana denetleyici eklendi (Abigails ana sayı denetleyicisi regex)

Görev 3, PARI / GP, 24 22 bayt

m(v)=vecsort(v)[#v\2];

İlk defa buna dokundum. Biraz daha fazla şey öğrenmek zorunda kalabilirsin.

Görev 4, T-SQL, 235 bayt

CREATE FUNCTION D(@ INT)RETURNS TABLE RETURN WITH R AS(SELECT @/-2+(IIF(@%-2<0,1,0))D,CAST(ABS(@%-2) AS VARCHAR(MAX))M UNION ALL SELECT D/-2+(IIF(D%-2<0,1,0)),CAST(ABS(D%-2)AS VARCHAR(MAX))+M FROM R WHERE D<>0)SELECT M FROM R WHERE D=0

Özyinelemeli CTE kullanarak satır içi tablo işlevi. Çok büyük, ama eğlenceli.

Kullanmak

SELECT * FROM D(18)
M
------
10110

Görev 5, GAP, 48 bayt

"pneumonoultramicroscopicsilicovolcanoconiosis";

Görev 6, Excel, 51 48 bayt

=IF(TEXT(NOW(),"md")="11","Happy New Year!","")

3 bayt için @Bond teşekkürler.

Görev 7, Python 2.6, 98 93 85 bayt

from random import*
l=range(13312,19893)
shuffle(l)
print ''.join(map(unichr,l[:64]))

Python'da ilk defa bir şey yapmaya çalıştım, bu yüzden daha iyi olabilirdi. Harika ipuçları için @Dennis ve @Jocob'e teşekkürler

Görev 8, TCL, 57 bayt

proc m {a b} {string match [regsub -all (.) $a *\\1]* $b}

Boşluk kaldırmanın bunu öldürmesi utanç verici

Görev 9, Pike, 53 bayt

mixed m(array(array(int))a,int n){return(a[*])[*]*n;}

Çarpılan diziyi döndüren bir işlev

Görev 10, Powershell, 88 bayt

Function t($n){Foreach($s in "  ______ "," |      |","~ ()--() "){($s*$n).Substring(1)}}

Bir Powershell işlevi. Sanırım biraz kısaltabilirim, ama işte şu anda.

Ve sonunda bitti :)


Görev 6: 4 üzerine 4 bayt kaydedebilirsiniz =IF(TEXT(NOW(),"md")="11","Happy New Year!","").
Tahvil

@Bond Bunun için teşekkürler
MickyT

Python'u da bilmiyorum ama l[:63]çalışması gerekiyor ve (13312,19894)onaltılık sabitlerden (ve toplamdan) daha kısa.
Dennis,

@Dennis Teşekkürler denemek ve değişim olacak
MickyT

@Dennis 19893'i yüksek değer olarak seçtim çünkü range(19892,0x4DB5+1)bana verdi[19892, 19893]
MickyT

4

Görev 2, J, 10 bayt

1&p:*/@,#:

Girdi ikili gösterime öncelikli ise, bir boole 0 veya 1'e bağımlı olur, sonra ürünü alır. J'nin güncel sürümüyle çalışır


Görev 5, HTML, 45 bayt

pneumonoultramicroscopicsilicovolcanoconiosis

Görev 6, balık, 53 bayt

test 0101 = (date '+%d%m');and echo 'Happy New Year!'

Bash cevabı dayanarak.


Görev 8, APL, 12 bayt

{(⍳⍴⍺)≡⍋⍵⍳⍺}

Bu bir fonksiyon ifadesidir. Daha büyük dizgede bulunan karakterlerin sırasını, sıralanırsa beklenebilecek olanla karşılaştırır.


Görev 9, K, 1 bayt

*

Herhangi bir sürümde çalışması gerekir. Aritmetik işlemler diziler üzerinde dağılır.


Yorumlar uzun tartışmalar için değildir; bu konuşma sohbete taşındı .
Martin Ender

2
Görev 8 için kodunuz için çalışmıyor abc caxbxc.
jimmy23013

4

Görev 1, Yakut, 40 bayt

def f n;(0..n-1).inject{|a,b|a+b**3};end

Ruby'de ilk kez bir şey yazıyordu. Yakut 1.8.7 ile test edilmiştir.


Görev 2, R, 50 bayt

n=scan();p=log(n+1,2);!p%%1&sum(!n%%2:n,!p%%2:p)<3

Hesaplar p, tamsayı olup olmadığını ve n ve p'nin asal olup olmadığını kontrol edin.


Görev 5, PostgreSQL, 54 bayt

SELECT'pneumonoultramicroscopicsilicovolcanoconiosis';

Görev 6, Lua, 55 bayt

print(os.date("%j")=="001" and "Happy New Year!" or "")

Görev 8, Python, 65 bayt

import re;f=lambda s,S:bool(re.search(re.sub(r'(.)',r'\1.*',s),S))

Kullanımı:

>>> import re;f=lambda s,S:bool(re.search(re.sub(r'(.)',r'\1.*',s),S))
>>> f('abc','axbxcx')
True
>>> f('bac','axbxcx')
False
>>> f('abc','axdxcx')
False
>>> f('abc','abc')
True

Görev 10, Julia, 73 bayt

f(n)=print(" ______  "^n*"\n"*"|      | "^n*"\n"*(" ()--() ~"^n)[1:9n-1])

@AlexA'ya teşekkürler. Bu kodu kısaltmaya yardımcı olduğunuz için! Çıkışlara örnek:

julia> f(0)




julia> f(1)
 ______  
|      | 
 ()--() 

julia> f(2)
 ______   ______  
|      | |      | 
 ()--() ~ ()--() 

julia> f(3)
 ______   ______   ______  
|      | |      | |      | 
 ()--() ~ ()--() ~ ()--() 

Görev 2 için kullanabilirsinizlog2
MickyT

Ben senin Julia görev 10. şu anda 86 byte Ama eğer bir lambda işlevini kullanarak 81'e alabilirsiniz (yani değiştirmek f(n)=ile n->) ve değişen 1:(9*n-1)basitçe için 1:9n-1.
Alex A.

Doğru \n, alışkanlık tarafından 1 bayt olarak saydım .
plannapus

Aksine (" "*"_"^6*" ")^n, kullanabilirsiniz " ______ "^n( | |parça için aynı şekilde ). 70 bayt: n->print(" ______ "^n*"\n"*"| | "^n*"\n"*(" ()--() ~"^n)[1:9n-1]). (Barlar arasındaki boşluk burada olsa gösterilmiyor)
Alex A.

3

Görev 1, Haskell, 17 bayt

f x=(x*(x-1)/2)^2

Görev 2, Mathematica, 30 bayt

PrimeQ@#&&Mod[Log2[#+1],1]==0&

Görev 3, JavaScript, 46 bayt

function(x){return x.sort()[0|(x.length-1)/2]}

Görev 5, MATLAB, 47 bayt

'pneumonoultramicroscopicsilicovolcanoconiosis'

Görev 6, Ruby, 56 bayt

print Time.now.to_s[5,5]=="01-01"?"Happy New Year!":""

Görev 7, Python, 106 bayt (girintili \t)

from random import*
s=''
while len(s)<64:
    c=unichr(randint(0x3400,0x4DB5))
    if c not in s:
        s+=c
print s

Sisteminin kolay kullanımı olduğunu Not list(set(s))gelmez değil bu alanda bir tek tip olmayan olasılık dağılımını neden olacağından burada çalışmak mümkün olan tüm dizeleri nedeniyle liste üyelerine yeniden sıralamaya.



@ Görev No 7: 1. noktada kararlaştırıldı, ne zaman şansım olursa çözülecek. REPL ile ilgili olarak, buna karşı bir kural var mı?
Saran

Tamam, şimdi düzeltildi.
Saran

1 için, muhtemelen yapabilirsin (x*x-x)^2/4?
xnor

Can sıkıcı bir şekilde, JavaScript'in varsayılan sıralama işlevi, karşılaştırma yaparken sayıları dizgelere dönüştürür, bu nedenle her sayının yalnızca ilk basamağını karşılaştırır. Bu nedenle [2,3,10] 'da başarısız oluyor.
NinjaBearMonkey 25:15

1
7'de, aslında if c not in s:s+=cbir satırda koymak , birkaç karakter kaydetmek. Ayrıca 0x3400ile ikame edilmiş olabilir 13312, bir karakter daha kısa olan (ve benzer şekilde 0x4db5 için). Son olarak, karakter sayısını değiştirmez, ancak sekme girintisini beğenmediğiniz takdirde, bunun yerine tek bir boşlukla girintili olabilirsiniz.
mathmandan

3

Görev 1, Haskell, 15 bayt

f n=(n*n-n)^2/4

Görev 2, Julia, 28 bayt

n->(isprime(n)&&ispow2(n+1))

Görev 3, Octave, 30 bayt

@(x)sort(x)(ceil(length(x)/2))

Görev 5, Yacas , 45 bayt

pneumonoultramicroscopicsilicovolcanoconiosis

Görev 6, Mathematica, 46 bayt

If[DateList[][[{2,3}]]=={1,1},Happy New Year!]

Görev 9, PARI / GP, 10 bayt

(n,a)->n*a

3

Görev 3, Klip, 13 bayt

gHk[tivt}l`sk

Başka bir sürüm:

gHkci`v``l`sk

Çok `pahalıya mal oldu.

Görev 4, KSFTgolf, 16 bayt

g:]2%:)-2/:;xgpc

Tercüman burada. Ne yaptığımdan emin değilim. Bu, negabineriyi yazdıracak ve sonra çökecek.

Tercümanda bir hata var. Veya yerleşik temel dönüştürmeyi kullanarak onu 12 bayta kadar indirebilirim (ancak yalnızca pozitif tamsayılarla çalışır):

2*02-ba'Z=;x

Orijinal CJam versiyonu:

qi{_1&_@^-2/}h;]W%

Pip, Devekuşu, Klips ve Burlesque'i, yerleşik negabinerinin bulunduğu bir esolang olup olmadığını öğrenmek için denedim. Hiçbiri işe yaramadı. KSFTgolf numpy, taban negatif olduğunda bazı garip davranışlara sahip görünüyordu. Ancak pozitif olmayan sayılarla çalışmasını sağlamak kolay değildir.

Görev 7, CJam, 15 bayt

'䶶,DAm<>mr64<

Görev 8, APL, 21 bayt

∨/↑{⍺∧0,2∧/∨\⍵}/⌽⍞=↓⍞

Çevrimiçi deneyin.


Lol @ "Ne yaptığımdan emin değilim"
Alex A.

Bu konuda soru çok açık değildi, ama niyetim görev 4'ün kodunun giriş 0'ı işlemesi gerektiği yönündeydi. Yerleşik taban dönüşümü olmayan versiyonun durumu gayet iyi görünüyor.
Dennis,

@Dennis Sabit. Ama ya ben unary kullanmayı seçersem?
jimmy23013

Bazı sabit ofset veya 2'lerin tamamlayıcısının kullanılması işe yarayabilir. Ayrıca bir unary rakamı ile gelen bir işareti kabul ediyorum.
Dennis,

3

Görev 2, x86 maskesi, 40 bayt

C7 45 FC FF FF 07 00 B9 
00 00 00 00 B8 02 00 00 
00 D3 E0 3B 45 FC 7D 03 
41 EB F1 B8 02 00 00 00
D3 E0 48 3B 45 FC 75 13

(başlık, MessageBox, vb. hariç - sadece ilgili baytlar)

include     \masm32\include\user32.inc  
includelib  \masm32\lib\user32.lib

.data
    ClassName   db "Mersenne Prime Found",0
.data?

.code
start proc
    LOCAL IsMersenne: DWORD
    mov IsMersenne, 524287 ; put number to test in this input
    mov ecx, 0
l00p:
    mov eax, 2
    shl eax, cl
    cmp eax, IsMersenne
    jge br3ak
    inc ecx
    jmp l00p
br3ak:
    mov eax,2                                                                                     
    shl eax, cl 
    dec eax
    cmp eax, IsMersenne                                                           
    jnz n0pr1me                                                              
    invoke MessageBox, 0, addr ClassName, addr ClassName, 40h
n0pr1me:
    ret
start endp
end start

Görev 3, C, 136 bayt

#include<stdio.h> 
int C(void*A,void*B){return(*(int*)A-*(int*)B);} 
main(){int S=4;int A[]={3,1,2,4};qsort(A,S,4,C);printf("%i",A[((S&1)?S:S-1)/2]);}

Kullanarak derleyin gcc -o Prime main.c


Görev 10, C ++, 478 bayt

#include<stdio.h>
#include<string.h> 
#include<stdlib.h>
void D(int Z){int L=9,i,X=0;const char*A=" ______  ";const char*B="|      | ";const char* C = " ()--() ~ ";char*P=(char*)malloc(27*Z+5);for(i=0;i<Z-1;i++){if(!i){memcpy(P,A,L);X+=L;}memcpy(&P[X],A,L);X+=L;if(i==Z-2){memcpy(&P[X],"\n",1);X++;}}for(i=0;i<Z;i++){memcpy(&P[X],B,L);X+=L;if(i==Z-1){memcpy(&P[X],"\n",1);X++;}}for(i=0;i<Z;i++){memcpy(&P[X],C,L);X+=L;if(i==Z-1)P[X-1]='\0';}printf("%s\n",P);free(P);}
main(){D(15);}

Kullanarak derleyin g++ -o Trucks main.cpp

C & C ++ kısaltılabilir ancak derleyici hatası ekler. Tam kuralları bilmediğim için derleyici hatası olmadan kod bırakmaya çalıştım.


3
PPCG'ye Hoşgeldiniz! Derleyici kullanılabilir bir ikili dosya ürettiği sürece, derleyici uyarıları güvenli bir şekilde göz ardı edilebilir.
Dennis,

2
Kod golf, bir C derleyicisi bu daha da golfed edilebileceğini uyarır değil bir uyarı üreten.
Comintern,

Uyarıları görmezden - ve, er, hissetmek özgür de istediğiniz kadar bellek olarak sızmaya. :-)
Toby Speight

3

Görev 1, Python, 35 Bayt

lambda x:sum(_**3for _ in range(x))

Görev 3, CJam, 9 Bayt

q~$_,(2/=

Görev 4, JavaScript, 55 53 Bayt

function(n){s=0xAAAAAAAA;return((n+s)^s).toString(2)}

Görev 5, Pyth, 46 Bayt

"pneumonoultramicroscopicsilicovolcanoconiosis

Görev 6, C #, 65 Bayt

string c(){return DateTime.Now.DayOfYear<2?"Happy New Year!":"";}

2

Görev 1, jq, 24 bayt

[range(1;.)|.*.*.]|add+0

Görev 6, PostgreSQL, 54 bayt

select'Happy New Year!'where'001'=to_char(now(),'DDD')

2

Görev 1, Cjam, 7 bayt

q~,:+_*

Düzenleme: Sadece fark ettim ki Martin bunu benden önce gönderdi. Başka bir şey deneyeceğim ...

Görev 3, Python, 30 bayt

lambda l:sorted(l)[~-len(l)/2]

Python 2.

Görev 5, ///, 45 bayt

pneumonoultramicroscopicsilicovolcanoconiosis

/// sadece herhangi bir /karakter içermeyen bir şeyi tekrarlar .

Görev 7, Pyth, 19 bayt

s>64.SmC+13312d6582

Programı. Lütfen matematiği kapattığımı söyle. Burada dene

Görev 9, Octave, 9 bayt

@(a,n)a*n

Anonim işlev tanıtıcısı. Octave bunu otomatik olarak matris * skalar ile yapar.


Görev 7 için benzersiz olması gerekir.
Maltysen

Evet, pyth .Skarıştırdı ve syerine um kullanabilirsiniz jk.
Maltysen

2

Hepsini denemek için zaman bulamadım, ama işte başlangıç

Görev 1, dc, 8 bayt

d1+*d*4/

dcKongreye göre yığının üstüne girdi ve çıktı .

Görev 5, Emacs Lisp, 46 bayt

'pneumonoultramicroscopicsilicovolcanoconiosis

Kuralların kötüye kullanılması:

grep 'pn.*v' /usr/*/*/brit*-large

Sıkıştırılmış formdan açarak başarabileceğim en iyisi Perl’de 55 idi:

unpack("H45",'uïFVóÙ¤¼g°0Æö<¥le°°')=~y/0-9bdf/i-v/r

(yukarıdaki basılabilir olmayan karakterler SE tarafından engellenmiş, ancak aslında benim cevabım olmadığı için tamir etmiyorum)

Görev 6, SQL, 54 bayt

SELECT IF(now()LIKE'%-01-0_%','Happy New Year!','Hi');

Ocak ayının ilk on gününün bu selamlama için 'uygun' günler olduğunu düşünüyorum, ancak zevkinize göre ayarlayabilirsiniz. now() LIKEYapı günündeki yıl ayıklanması daha kısa dışarı çalışır DATE_FORMAT(now(),'%j').

Görev 10, sed, 58 bayt

s/./ ()--() ~/g;s/.$//;h;y/()-~/___ /;p;g;y/ ()-~/|    /;G

Tekli giriş yapın.


strstrdizeleri değil, alt dizgileri araştırır. Korkarım görev 5, kolmogorov karmaşıklığı, bu yüzden bir sözlükten kelime almak akıllıca olabilir, ancak buna izin verilmiyor.
Dennis

Teşekkürler. Sıradaki şeyi yanlış anladım. Alternatif bir görev 5 yapacağım, ama çok sıkıcı.
Toby Speight

Görev 5 için birkaç ilginç çözüm var, ancak şimdiye kadar hiç kimse kısa bir yol göstermedi.
Dennis,

1

Görev 5, MarioGolf , 50 bayt

Bu bir süredir geliştirdiğim bir dildi.

Mevcut sürüm bu zorluğun üstesinden gelmek için yeterli işlevselliğe sahip.

Y|<pneumonoultramicroscopicsilicovolcanoconiosis|O

Çevrimiçi olarak http://htmlpreview.github.io/?https://raw.githubusercontent.com/ismael-miguel/mariogolf/master/js/testpage.html#c:Y|<pneumonoultramicroscopicsilicovolcanoconiosis|O adresinde deneyebilirsiniz.

Şu anda, geliştirme durduruldu ve uygulama tamamlanmadı.

En son taahhüt 13 Mart 2015'te gerçekleşti.

Görev 6, PHP, 37 bayt

Bu gerçekten çok kolay ve eğlenceli!

<?=date(jn)==11?'Happy New Year!':'';

Görev 10, Javascript, 121 bayt

Evet, o kadar golf değil ...

Ama işi yapıyor!

console.log((' ______  '.repeat(i=prompt()))+'\n'+('|      | '.repeat(i))+'\n'+(' ()--() ~'.repeat(i).replace(/~$/,'')));

Dene:

Kod ", çıktıdan başlamak üzere yığın pasajında ​​iyi görüntülenmez . Telafi etmek için adicional boşluklar eklendi.

Orijinal kod, Chrome konsolunda sorunsuzca yürütülebilir ve çıktı beklenir.


@Dennis Teşekkürler! Görevi yanlış okudum. 5. Diğer görevleri nasıl uygulayacağımı hala araştırıyorum, ancak kötü zaman geçiriyorum.
Ismael Miguel

1
Bundan emin date(dM)misin? İşte “25 Jun” döndürüyor. (En_US grubu) Belki “j” ve “n”, “d” ve “m”, daha iyi hizmet edecek 2. genişlik 0 doldurulan değerlere geri
manatwork

@ manatwork Haklısın. Benim hatamdı. Bunu tespit ettiğin için.
Ismael Miguel

1

Görev 1, CJam, 10 bayt

li,{3#}%:+

Burada dene

Görev 5, Retina, 46 bayt

<empty>
pneumonoultramicroscopicsilicovolcanoconiosis

1

Görev 1, Octave, 15 bayt

@(n)(n^2-n)^2/4

EDIT: Bunu eklediğimi sanıyordum ama kurtarmayı unuttuğum anlaşılıyor: sum(1^3+2^3+3^3+...+n^3) = sum(1+2+3+...+n)^2 = [n*(n+1)/2]^2

Görev 3, Javascript, 24 bayt

x=>x.sort()[x.length>>1]

1

Tamam, ilk önce kolay olanı halledelim:

Görev 5, ASP, 45 bayt

pneumonoultramicroscopicsilicovolcanoconiosis

Görev 6, JavaScript, 46 bayt

/an 01/.test(Date())&&alert("Happy New Year!")

1

Görev 1, VBA, 126 bayt

Function f(n As Integer)
    Dim i As Integer
    For i = 0 To n - 1
        f = f + i ^ 3
        Next i
End Function

VBA'da nasıl golf oynayacağına dair hiçbir fikrim yok. Tek bir boşluk girmedim, VBA otomatik olarak boşluk ekler. =f(5)Excel'de bir hücrede 100 görüntüler.

Görev 2, Octave, 32 Bayt

@(n)isprime(n)&~mod(log2(n+1),1)

Görev 5, Golfscript, 47 bayt

"pneumonoultramicroscopicsilicovolcanoconiosis"

Görev 9, MATLAB, 9 bayt

@(A,n)A*n

Bu bir başlangıç ​​...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.