Lezzet metni
Yığın tabanlı esolang Underload fonksiyonel programlamaya bazı ilginç bağları var. Bunlardan biri, sayısal veri türünün işlenmesidir - lambda hesabı gibi, N sayısını doğal olarak gerçekleştiren bir işlevle doğal N sayısını temsil edersiniz.
İşleri kolaylaştırmak için, yalnızca aşağıdaki Düşük Yük komutları alt kümesini dikkate alacağız:
:- Bu komut, yığındaki en üst öğeyi çoğaltır.*- Bu komut, yığındaki ilk iki öğeyi tek bir öğede birleştirir.
Bir Düşük Yük rakamını N dizesi olarak tanımlarız :ve *yürütüldüğünde yığındaki en üst öğeyi tüketir ve bu öğenin birlikte birleştirilmiş N kopyalarını üretiriz. Bazı örnekler:
- 0, -1, 1/2, Under gibi Düşük yük sayıları yoktur.
- Boş dize
Underload rakamı 1'dir, çünkü yığına dokunulmaz. :*Düşük öğeyi 2 olarak gösterir, çünkü üst öğeyi çoğaltır ve sonra bu iki kopyayı tek bir öğede birleştirir:(A):*=(A)(A)*=(AA).::**Düşük yük rakamı 3:(A)::**=(A)(A):**=(A)(AA)*=(AAA).:::***Düşük yük rakamı 4'tür.:*:*ayrıca Düşük yük rakamı 4:(A):*:*=(AA):*=(AA)(AA)*=(AAAA).
Genel olarak, M ve N Düşük yük sayıları ise Mve varsa N, o zaman :N*N + 1 MNrakamı ve M × N rakamı olduğunu göreceksiniz .
Meydan okuma
Göreviniz, en kısa programı (STDIN'de girdi alarak) veya işlevi (bağımsız değişken üzerinden girdi alarak) , Dize olarak girdisi için Düşük yük rakamının en kısa gösterimini üreten bir işlev yazmaktır . Yani, giriş pozitif bir doğal sayı N> 1 ise, karakterlerdeki uzunluğu diğer Düşük yük sayılarının N değerinden küçük veya ona eşit olan bir Düşük Yük rakamı N üretmelisiniz.
Örnek giriş ve çıkışlar: ("Giriş - OUTPUT.")
- 1 -
. - 2 -
:*. - 5 -
::*:**(2 × 2 + 1). - 7 -
::*::***(2 × 3 + 1) veya:::**:**(3 × 2 + 1). - 33 -
::*:*:*:*:**(2 × 2 × 2 × 2 × 2 + 1). - 49 -
::*:*:*:*::***(16 × 3 + 1, uzunluk 14) ancak değil::*::***::*::***(7 × 7, uzunluk 16).
Giriş pozitif bir doğal sayı değilse, bir hata döndürmekte, tanımlanmamış davranışlar üretmekte ve hatta sonlanamamakta serbestsiniz. Gönderinizin cevabı bulma yönteminin açıklaması takdir edilmektedir.
Standart boşluk deliği kısıtlamaları geçerlidir: ekstra giriş yok, web isteği yok, çıkış / dönüş değeri tam olarak cevap olmalı ve sonsuz bir rastgele akış :ve *vb olmamalıdır .
xolan 2*A117498(x)burada A117498 bir ekleme zinciri bulmak için ikili ve faktör yöntemlerin en uygun kombinasyonunu verir.