Giriş
Çocuklukta ekleme ve çoğaltma konusunda ustalaştığınızı düşündüğünüzde bir nokta gelir, o zaman birisi gelir ve size şunları bildirir:
a * b + c = (a * b) + c! = a * (b + c),
ve daha önce size öğretildiği kadar basit veya doğrusal bir süreç olmadığını. İşlem sırası denilen bir şey olduğunu öğrenirsiniz . Bu, parantezlerin her şeyin önüne geçmesine gerek kalmadan, bir düzeyde tutarlılığı ve ifadeleri korumanın çok önemli bir yoludur.
Genel hikaye
Bir gün sokaklardaki panik sesiyle uyanıyorsunuz. " 2560 " ( aşırılık bir hex-ish bükümü ile "Operasyon Düzene Karşı Örgüt" Kısa) adlı aşırılık yanlısı bir grup , kötü yöntemlerini dünyadaki tüm nükleer silahların kontrolünü ele geçirmek için kullandı. Tüm gezegeni rehin tutuyorlar ve basit bir talepleri var: kabul edilen operasyon sırasını tersine çevirme veya ortadan kaldırma (parantezler önceliklerini korumak içindir). Yeni sistem PSADME (parantez, çıkarma / toplama, bölme / çarpma, üsler) olarak adlandırılır ve ifadeler sağdan sola değerlendirilir:
a - b - c = a - (b - c) = a + c - b
Günler geçer ve geçiş devam eder. Matematikçiler ve fizikçiler denklemlerini yeniden yazmakla meşgulken, bilgisayar bilimcileri matematiksel ifadelerin bilgisayarlar tarafından yorumlandığı modayı değiştirme göreviyle karşı karşıyadır. Yeni küresel derebeyler için çok fazla işkence yapmayı amaçlayan gizli bir isyancı programlama grubuna mensupsunuz - ve şans eseri, 2560 tarafından rastgele seçiliyor ve kıyaslama hesaplama programını üretmekle görevlendiriliyorsunuz.
Göreviniz
Basitlik için, sağlanan tüm sayılar tamsayı olacak ve hesaplamalar tamsayı sonuçları üretecektir.
Kurallar ve puanlama
- Program 128 karakter uzunluğundaki girişleri kabul etmelidir - diliniz / platformunuz daha düşük bir maksimum giriş uzunluğuna sahipse, bu kabul edilebilir bir bahanedir.
- Standart boşluklar yasaktır.
- Kazanan kod 18 Kasım'da (bu gönderi tarihinden itibaren 4 hafta) seçilecektir.
- Golf için uygun sayılmayacak kod yayınlamaktan çekinmeyin. Bu eğlence ile ilgili. Bunu yapmanın ilginç bir yoluna sahipseniz, ancak kendiniz (veya yönteminizin doğası gereği) golf yapamıyorsanız, yine de gönderebilirsiniz.
Her zamanki gibi, kazanan kod, bazı eğlence değeri bonuslarıyla en az bayt sayısına sahip koddur:
- Sağlanan ifadedeki karakterlerin kullanımından kaçınmak için -5 : + , - , ( , ) , ^ , * , /
- -5 Hesaplamaları yapmak için, yöntem açık olmadan (saat veya gereksiz döngüler kullanılarak) standart bir bilgisayarda hesaplamak 5 dakikadan fazla (ancak 10 dakikadan fazla değil) sürer; Amaç, yeni derebeyleri kıyamet hesaplarını bozmaya çalışmadığınıza ikna etmektir .
- - (5 + N) kodunuz içinde açık bir şekilde yazılacak 2560 üyeleri hakkında doğrudan saldırgan bir mesaj (N uzunluğunda, ön / arka boşluk dahil değil), neden olması gerektiğine dair saçma bir açıklama Orada. Kaldırılırsa kod düzgün çalışmamalıdır . Evet, eğlence değeri için ücretsiz puan.
Örnekler ve açıklamalar
[program] 2 - 2 - 2
2
2 - (2 - 2) = 2
[program] (2 + 2 * 3 + 3) / 3 + 3
4
(4 * 6) / (3 + 3) = 4
[program] 3 + 2 + 1 ^ 3
216
(3 + 2 + 1) ^ 3 = 216
[program] -5^2
25
(-5) ^ 2 = 25
[program] 32 / 8 * 3 - 1
2
32 / (8 * (3-1)) = 32/16 = 2
P(SA)(DM)E
.
1 - 3 + 4 = 1 - 7
? Sağdan sola bunu önerir, ancak bu PSADME'nin aksine çıkarma işleminden önce bir ekleme yapar, değil mi?