Doğudaki En Hızlı Tilki


15

Merhaba dünya ruhu içinde ! tekrarlama olmadan

İsteğe bağlı satırsonu "hızlı kahverengi tilki tembel köpeğin üstünden atlar" dizesini yazdıran bir program yazın. Tüm program hiçbir karakteri tekrarlamamalıdır.

Dize basılacak o Not yapar nasılsa bu tip bir kısıtlama etrafında almak zorunda kalacak, böylece tekrar karakterleri.

Kazanan koşulun , yani en yüksek oyu alan cevap kazanır.

Güncelleme: Bunu biraz daha kolaylaştırmak için tekrarlamaya izin verilir, ancak en aza indirmeye çalışmalısınız. Tekrarlı (veya hiç) tekrar olmayan programlara, tekrarlı programlara göre öncelik verilir.


Korkarım ki bu imkansız olmasa bile, muhtemelen çok zor. Hello world!tekrarlar olmadan, insanların çok niş dillere başvurmak zorunda kaldıkları yeterince zordu veya açıkça görevi tamamen çözemedi ve bu da bunun üstünde oldukça zor.
FireFly

3
C'de kesinlikle imkansız. Fonksiyonları arayamaz veya makro kullanamazsınız.
Oberon

Ben tavsiye: verilen dize mümkün olduğunca az tekrarlanan karakterler ile yazdırın .
primo

@FireFly'nin cevapları çok uzun sürmedi :)
SirDarius

3
@tmartin Hayır, değil. Bağlantılı soru tekrarlamayı desteklerken mevcut soru cezalandırmaktadır.
gerrit

Yanıtlar:


32

97'den 2003'e kadar Microsoft Word (ve bazı Mac Word sürümleri) - 10 karakter

Tekrar yok, ancak özelliklerle tam olarak eşleşmiyor - 10 karakter:

=rand(2,1)

Çıktı:

The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.

Büyük / küçük harf ve noktalama işaretleri dışındaki özelliklerle eşleşir, bir tekrar - 10 karakter:

=rand(1,1)

Çıktı:

The quick brown fox jumps over the lazy dog.

Microsoft Word yeni versiyonları kullanan =rand.old(1,1)hangi çiftleri dve 1.

Bir alanı {=SUM(3,-2)}rand () girdisi olarak kullanmanın bir yolu olabilir , ancak yüklemem alanlarla ilgili sorunlar yaşıyor - yani çalışmıyorlar ...

"Bob" {=SUM(3,-2)}ilkini değiştirmek için (bazı zorluklarla) kullanılabileceğini doğruladı 1, ancak =tekrarlandı ...

=rand({=SUM(3,-2)},1)

SUMÖncelikle Word'ü güncellemeniz koşuluyla çıktı:

The quick brown fox jumps over the lazy dog.

Verilen sözdiziminin doğru olduğundan emin değilim, ancak test etmek için eski olan sistemim yok. Ancak daha yeni sürümler için olması gerekir =rand.old(1,1). İlk 1'i değiştirmek için 3-2 kullanmaya çalıştığınızı varsayalım, ancak 2010'da rand.old veya rand ile çalışmıyorum.
Iszi

Burada da bir sistemim yok, eve geldiğimde kontrol edecek. Ayraçları { ... }sınırlayıcı olarak kullanması gerekebilir , ancak ifadelerin herhangi bir işlevde kullanılabileceğinden eminim. Değilse, gözden geçireceğim!

2
{=SUM(3,-2)}Word 2007'de çalışmaları onaylayabilirim . Ancak yöntem biraz karmaşık. İlk önce bir alan kodu girmelisiniz (Ctrl + F9). Ardından, sağ tıklayın => alanı düzenle => formula => advanced => formülü yazın. Çünkü doğrudan yazmanız herhangi bir nedenle işe yaramıyor. Şimdi alanı tıklayın ve Shift + F9 ile değerlendirin. Ve ekleyin=rand.old()
Bob

=SUMDoğrudan aritmetik operatörleri kullanmak gerekli 3-2midir , yoksa sadece kullanabilir mi?
supercat

@supercat - Bunu denedik ve bazı nedenlerden dolayı Word ifadeleri parametre olarak kabul etmiyor =rand(), örneğin =rand(3-2,1)mükemmel olurdu. Aslında denemedim =rand({=3-2},1), ama aynı şekilde, çoğaltılması ile çalışması gerekir =.

17

Kaydırma - 36 karakter

덆둥긇굵늖꽫긆깲닷덮긂롦닲롸껂걪덖륰댲걯덦넬댢건늆넠닆굺뎒걤닶댬首坼

(boş girdi bekliyor)

Açıklama:

Push the string "the quick brown ,fo,x, jumps ove,r the lazy dog,"
덆둥긇굵늖꽫긆깲닷덮긂롦닲롸껂걪덖륰댲걯덦넬댢건늆넠닆굺뎒걤닶댬
Retrieve last character from the string (",")
首
Regular expression string-split
坼

Sonuç, ["the quick brown ", "fo", "x", " jumps ove", "r the lazy dog", ""]çıktı için otomatik olarak tek bir dizeye birleştirilen listedir .


1
105 bayt sayıyorum, birkaç tekrardan bahsetmiyorum bile. Örneğin Char 235 , 20 kez kullanılır.
primo

11
Msgstr "Hiçbir karakter tekrarlanmamalıdır ", "hiçbir bayt tekrarlanmamalıdır".
Plutor

3
Timwi'ye şaşırmadım, kendi diliniz "tekrarlanan karakterler yok" mücadeleleri için mükemmel.
Pierre Arlaud

13

Perl 6 (76 karakter, çift yok)

Senaryo (pano yazılımı tarafından yönetilecek, ancak Thin Space ve NL ve LF ve sekmeye kadar En Space var)

say EVAL    lc q{<the Quiţk Brown fïX jUmpS ůvťɲ Tɨå ìšzY dOg>~&(127.CHR
x
43)}
  • EVAL (büyük harf için tekrar teşekkürler) kullanır ve <foo bar>kelime ayırıcı olarak tüm özel boşluk karakterlerini destekleyen kelimeleri alıntılar.
  • say boşluk kullanarak dizeler listesine katılır, burada güzel çalışıyor :)
  • Sonra ~&düz ascii karıştırmak için 127 ve kullanın . Ekstra komplikasyon: 'Ŭ'.lcolur 'ŭ'o bir haline gelmesi syerine rihtiyaç I. 128 ekstra süre eklemek yardımcı olur :)

Unicode karakterler yerine ters eğik çizgi içeren bir sürüm, hepsinin farklı olduğunu göstermek için kaçar

say\x[3000]EVAL\x[9]lc q{<the\x[2003]Qui\x[163]k\x[2004]Brown\x[2005]f\x[EF]X\x[2006]jUmpS\x[2007]\x[16F]v\x[165]\x[272]\x[2008]T\x[268]\x[E5]\x[2009]\x[EC]\x[161]zY\x[200A]dOg>~&(127.CHR\x[0A]x\x[0D]43)}

Hepsinin benzersiz olduğunu doğrulamak istiyorsanız, bu komut dosyasını kullanın ( Qb"string"yalnızca ters eğik çizgi kaçışlarıyla temel alıntı yapardım )

.say for 
Qb"say\x[3000]EVAL\x[9]lc q{<the\x[2003]Qui\x[163]k\x[2004]Brown\x[2005]f\x[EF]X\x[2006]jUmpS\x[2007]\x[16F]v\x[165]\x[272]\x[2008]T\x[268]\x[E5]\x[2009]\x[EC]\x[161]zY\x[200A]dOg>~&(127.CHR\x[0A]x\x[0D]43)}"
.comb.Bag.grep(*.value > 1).map: {.key.ord.base(16) ~ " $_"  }

Veya doğrudan kullanarak

EVAL Qb"say\x[3000]EVAL\x[9]lc q{<the\x[2003]Qui\x[163]k\x[2004]Brown\x[2005]f\x[EF]X\x[2006]jUmpS\x[2007]\x[16F]v\x[165]\x[272]\x[2008]T\x[268]\x[E5]\x[2009]\x[EC]\x[161]zY\x[200A]dOg>~&(127.CHR\x[0A]x\x[0D]43)}"

10

PHP - 67 bayt

<?echo$g^¶¥€¼½ˆ•.${~˜}=ÂÍåœÌýü¡¦Åþ¾’‹Ï†£‘ƲáºëÓâæݗߙ󖎸·³ø‰ï®ÜØÔ;

Kopyala-Yapıştır, Latin-1 (Ansi) olarak kaydedin.

Bu, dizeyi kullanan 7 baytlık bir xor-şifredir ¶¥€¼½ˆ• tuz .

Bir tekrarlanan karakter: $.


<?=Zaten kısa etiketler kullandığınız için kullanarak başka bir 3 karakteri kısaltabilirsiniz
Kristoffer Sall-Storgaard

Ah, üzgünüm, sadece zaten kullandığınızı fark ettim =
Kristoffer Sall-Storgaard

@KristofferSHansen Ben tekrardan eval('Return$g=binary;')kaçınmak için bazı şifreli formda (belki de biraz ters) kullanmak mümkün olmalı $ve sonra =da serbest bırakılacak bence.
primo

Açılış etiketi bayt sayısına dahil edilmemelidir.
TecBrat

@TecBrat Final ;, kapanış etiketi ile değiştirilebilir: bu da sayılmamalı mı? Kısacası katılmıyorum. Kodunuz olduğu gibi çalışmazsa, tam bir program değildir.
primo

0

Haskell, 71 karakter

map(\c->chr$mod(ord c)128)"tŨeఠquiţkĠbŲɯwnȠfѯxРjѵŭŰsܠůvťѲठѴѨѥਠlšzyଠɤկg"

Yine başka bir 7-bit modulo çözümü.

Tekrarlanan karakterler:

c 3
d 2
m 2
o 2
r 2
( 2
) 2
" 2

Haskell ile ilk kez golf; dilde daha deneyimli herkes, geliştirmek için çekinmeyin. Bir değişkenden iki kez bahsetmekten kaçınmak için anonim işlevi noktasız yapmak istedim, ancak bunun net bir fayda olup olmadığını bilmiyorum.


0

JS, 35

btoa("¶ªº'$nº0ú1驲ޮØ^¬òv")

(evet ... çifte teklif tekrarlanıyor. ve çıktı kötü. Henüz ciddi bir cevap değil.)


-2

Toplu Komut Dosyası: 7 bayt

echo %1

Komut dosyası hello.bat ise, komut satırına şunu yazın:

hello.bat "The quick brown fox jumps over the lazy dog"

Bu, bu çok ... duyarsız! (Yani, sorunun tam olarak ne istediğini
Bay Lister

6
Bunu komut satırına yazarak karakterleri tekrar edersiniz.
gerrit
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.