Kodun uzunluğu ile aynı sayıda pi basamak içeren çıktı


9

Sizin meydan okuma xpi xkod uzunluğu nerede pi rakam yazdırmak için.

Örnekler:

Source code (length) -> output
foo!        (4)         3.141
foobar      (6)         3.14159
kinda long  (10)        3.141592653
+++++       (5)         3.1415
123456789   (9)         3.14159265

Yazdırmanız gereken basamak sayısını belirlemek için kullanabilirsiniz . Ondalık noktasının pi basamağı olarak sayılmadığına dikkat edin, bu nedenle uzunluk 3 kodunun çıkış uzunluğu 4 olmalıdır.floor(π/10 * 10code_length) / 10code_length - 13.14

Kurallar:

  • Kod uzunluğunuzun üç karakterden uzun olması gerekir.
  • Standart boşluklar kullanamazsınız.
  • İzin verilen herhangi bir standart çıktı yöntemini kullanabilirsiniz.
  • Kod uzunluğunu belirlemek için kaynağınızı okuyamayabilirsiniz.
  • Yerleşik bir pi sabiti kullanamazsınız.
  • Pi tamamen doğru olmalı ve yaklaşık olmamalıdır.
  • Çıktıdaki ondalık nokta gereklidir. Dönüş değeri üzerinden çıktı almayı seçerseniz, bir kayan noktalı tam sayı döndürmeniz gerekir.
  • Bu zorluğun amacı, çözüm için en kısa dili değil, her dilde en kısa çözümü bulmaktır. Çözümünüz farklı bir yöntem kullandığı sürece aynı dilde daha kısa bir çözüm gönderildiğinde, bir dilde çözüm göndermekten korkmayın.

... yani ediyorum bu geçerli olmak ya da olmamak?
Jonathan Allan

(değiştir ^ this even (rounding))
Jonathan Allan

“Kod uzunluğu” ← bayt veya karakter mi?
Lynn

@Lynn Bytes, her zamanki gibi.
MD XF

Sadece 3izin veriliyor mu?
NoOneIsHere

Yanıtlar:


3

Japt , 9 4 bayt

İzin verilen en kısa sürede :)

Tarihinden sonra yazdırılamaz (ters satır beslemesi, kod 141) içerir #.

3.#

Dene

Japt'te, takip eden herhangi bir karakter #karakter koduna dönüştürülür ve ondan önce gelebilecek herhangi bir rakam veya ondalık noktaya eklenir, bu durumda3.




6

VBA (Excel), 15 bayt

MsgBox 4*Atn(1)

Çıktı: 3.14159265358979

Ben sadece PI uzunluğuna uyacak şekilde golf gibi bu kabul edilemez olduğunu düşünüyorum. Golfsiz uzunluğu 17 bayttır. D:


1
Henüz karşılanmamış gibi görünüyor, bu yüzden, siteye hoş geldiniz!
MD XF

Oh, teşekkür ederim, efendim! : D
remoel

AtnArktanjant değil mi? Buna izin
verilip

OP'nin sadece yerleşik PI için başvurduğunu düşündüm. Benim hatam.
Remoel

5

Jöle , 6 bayt

3;⁽4ƒṾ

Çevrimiçi deneyin!

3,14159İzin verilen "Avrupa" ondalık ayırıcısıyla yazdırır ,,.

Nasıl?

3;⁽4ƒṾ - Main link: no arguments
3      - literal 3                3
  ⁽4ƒ  - base 250 literal 14159   14159
 ;     - concatenate              [3,14159]
     Ṿ - unevaluate               ['3', ',', '1', '4', '1', '5', '9']
       - implicit print           3,14159

1
Bu rakam listesi tuhaf görünüyor. Orada fazladan bir şey olduğunu düşünüyorum ,'.
Jonathan Frech

1
Bunun yerine yapabilir -ÆAær5ve kullanabilirsiniz , ancak o zaman benim Jelly çözümümle aynı olurdu. .,
Zacharý



4

Desmos , 130 bayt

f\left(\right)=\frac{\operatorname{floor}\left(10^{128}\cdot 4\sum_{k=1}^{9^9}\frac{\left(-1\right)^{k+1}}{2k-1}\right)}{10^{128}}

Bunun kaynak kodu (Desmos'un içine ve dışına kopyalayıp yapıştırarak erişilebilen) Desmos editörü kullanılarak oluşturulduğunda optimum değildir, bu nedenle birkaç bayt boşluk mümkün olduğunca golf edilmiştir.

Bu f, Gregory Sequence için hesaplanan pi döndüren hiçbir argüman almayan bir işlevi tanımlar k=9^9 (bunun doğru olduğunu onaylayamıyorum, ancak bunun olduğuna inanıyorum, daha büyük bir k değeri ile daha doğru yapılabilir ) daha sonra sonucu , kaynak kodun uzunluğu 128olan ondalık basamaklara yerleştirir 3..

Çevrimiçi deneyin!


Biri sonucu nasıl görür - sadece görüyorum 3.14159265617, yanlış yere mi bakıyorum; bir düğmeye basmam gerekir mi?
Jonathan Allan

Desmos varsayılan olarak sağlandığı kadar ondalık basamağa yazdırmaz, ancak değer yine de doğru olmalıdır.
ATaco

1
Bu meydan okuma "yazdırmak ..." olduğu için hayal kırıklığı yaratıyor
Jonathan Allan

1
"Çıktıdaki ondalık nokta gereklidir. Dönüş değeri üzerinden çıktı almayı seçerseniz, bir kayan nokta tamsayısı döndürmelisiniz." bu da bunu geçerli kılar.
ATaco

Bu ifadenin amacının daha az kesinliğe izin vermek değil, ondalık ayırıcı sağlamak olduğunu hissediyorum. Dikkat edin cevabınızın kötü olduğunu düşünmüyorum.
Jonathan Allan




3

Neim , 5 bayt

3FBρσ

Açıklama:

3      Push 3
 FB    F pushes 45, B converts it into a character code, '.'
   ρ   Push 14
    σ  Push 15
Implicitly concatenate and print stack

Çevrimiçi deneyin!


3

APL, 6 bayt

10○⍟-1

Ln (-1) 'nin hayali kısmını alır.

Çevrimiçi deneyin!


Hey, tekrar hoş geldiniz @ Uriel! Güzel bir, böyle bir şey düşünmüyordum (negatif sayıların günlükleri ile), güzel iş!
Zacharý

@ Zacharý teşekkürler, sadece bir ziyaret düştü ve bu cevap yardımcı olamazdı: P
Uriel


2

Math.JS , 17 bayt.

     log(-1,e).im

5 önde gelen alan

Bu , 15 ondalık basamağa kadar hesaplar ve bunu dolaylı olarak yazdırır.

Çevrimiçi Deneyin!


Teknik olarak bu, hayali bölümünü hesaplar ln(-1), ancak tamamen hayali bir sayı olduğu için, bölünmeye eşdeğerdir i.
Zacharý

2

05AB1E , 11 bayt

3•∊&SK•)'.ý

Çevrimiçi deneyin!

COMMAND     # CURRENT STACK         | EXPLANATION
------------#-----------------------+-----------------------------------
3           # [3]                   | Push 3.
 •∊&SK•     # [3, 1415926535]       | Push compressed base-255 number 1415926535.
       )    # [[3,1415926535]]      | Wrap the 2 to an array.
        '.  # [[3,1415926535],'.']  | Push a decimal point.
          ý # ['3.1415926535']      | Join 3 and 1415926535 with a decimal point.

YAPILARIN KULLANILMASI:

05AB1E , 4 bayt

žq5£

Çevrimiçi deneyin!


3žs bir sebepten dolayı çalışmıyor ...


@ Zacharý bir şey mi kaçırdım? Neden bu özel xD?
Sihirli Ahtapot Urn

Bu benim kullanıcı adımda ve ayrıca bir açıklama ekleyebilir misiniz?
Zacharý

@ Zacharý HA! Beynim PPCG ile ilgili olabilecek tüm komik şakalardan geçiyordu, boş çıkıyor. Saçmalamayı düşünürüm.
Sihirli Ahtapot Urn

@ Zacharý da ekledi.
Sihirli Ahtapot Urn

MY'nin örtük IO'su olsaydı, yenmenin bir yolu olmazdı E3., şimdi kendime kızgınım : s.
Zacharý

2

ForceLang , 269 bayt

set S 0x5F258E476FC1B3B5571012206C637089460E41E814CB071E61431B5F0671F551D18D2C5D2D3A2565E408C6DE8D753F595B6E9979C3866D1C9965008DCFB02E3BD11D21DFFAF17978F05C8BBACF55A5ED5E90B1D8CAD8736AA4B728EB342B453F86353DB371D322B6A98613BC5CCB00AC2.mult 1e-270
io.write S.toString 268

En azından github'daki dile bağlantı verin .
Jonathan Allan

2

MATL , 9 8 bayt

-1X;V9:)

Çevrimiçi deneyin!

Açıklama:

-1      % number literal
X;      % inverse cosine (radians), giving pi
V       % convert to string
9       % specify precision
:)      % keep first 9 characters - 8 digits of precision

Luis Mendo sayesinde bir bayt kurtardı!


1

Jöle , 6 bayt

-ÆAær5

Çevrimiçi deneyin!

Diğer Jelly cevaplarından farklı bir yaklaşım kullanır.

Nasıl?

-ÆA-1(pi olan) ters kosinüsüdür ær5, gerekli bölümü alır. Bu durumda yuvarlama bu durumda kesmeye eşdeğerdi



1

Perl 5, 40 bayt

}{$\=$\/~(2*$_)*~$_+2for-130..-2

-pMbignum8 olarak sayılan komut satırı seçeneğini gerektirir .

Örnek kullanım hızı:

$ perl -pMbignum test.pl < /dev/null
3.141592653589793238462643383279502884197

Hiçbir TIO bağlantısı için özür dilerim, desteklemiyor gibi görünüyor bignum(veya eşsiz bir açılış ayracı ...).


1

MY , 7 bayt

’2ō"8↑↵

Çevrimiçi deneyin!

Nasıl?

  • , yığının üst kısmını azaltın ( 0boşsa açılır, yığını oluşturur [-1]). (Jelly ile aynı sembol)
  • 2, itin 2.
  • ō, yığının üstü iki olduğu için 2, pop'u atın n, ardından itin acos(n)(radyan olarak, bu pi verir, bu sembol oüstünde negatif bir işaret vardır. o(normal trig için) APL'den gelir).
  • ", yığının üst öğesini açın ve dize olarak itin.
  • 8, itin 8.
  • , asonra pop btuşuna basın b[:a](Bu, APL'den alınan başka bir semboldür).
  • , yeni bir hat ile çıkış (OUTPUT <- STACK).

Sonra örtük çıktı ekleyin: P
MD XF


1

RPL (HP48), 86,5 bayt, 87 basamak [Bu sayılır mı?]

« GROB 8 43
14159265358979323846264338327950288419716939937510582097494459230781640628620899862803
→STR 9 OVER SIZE SUB 2 "." REPL »

GROB bir resim anahtar kelimesidir. Aşağıdaki 2 sayı genişlik ve yüksekliktir. Aşağıdaki onaltılık basamaklar bitmaptir. Bu, her 2 basamak ve resim meta verileri için 1 bayt depolama alanıdır.

Boş program « »10 bayt alır. Bir komut 2,5 bayt alır. Bir kayan nokta 10,5 bayt alır, ancak tek basamaklı bir tamsayıya eşitse 2,5 bayt alabilir.

HP48 her bellek konumunda 8 bit yerine 4 bit saklar, bu nedenle bir bayt art arda 2 konum (düşük endian) kaplar. Genellikle 20 bitlik parçalar kullanılır ve 2.5 bayt alır (3 değil).





0

Excel VBA, 16 Bayt

Excel VBA'nın STDOUT'larına hiçbir girdi ve çıktı almayan anonim VBE anlık pencere işlevleri

Her satır 16 uzunluğu Pi döndüren ayrı bir işlevi temsil eder

?Mid(4*Atn(1),1)
?Str([Acos(-1)])
Debug.?4*Atn(1);
MsgBox[Acos(-1)]
[A1]="=ACOS(-1)"



0

TI-BASIC, 7 bayt

round(4tan⁻¹(1),6

round(2sin⁻¹(1),6

round(cos⁻¹(-1),6

Bu üç ifade yazdırılacaktır 3.141593.


Not: TI-BASIC tokenize bir dildir. Karakter sayısı bayt sayısına eşit değil .

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.