Bu, bir mesajı kodlamak için PI rakamlarını kullanan basit bir şifreleme yöntemidir, yöntem basittir:
Anahtar, yalnızca pencerenin nerede başladığını belirten pozitif bir tamsayıdır:
Şifrelemek için, yalnızca küçük harfler içeren, boşluk içermeyen bir dize verildiğinde, uzunluğunu alırsınız, daha sonra PI'nin N'inci basamağını bulursunuz ve daha sonra her harfi, rakamla belirtilen miktar için sağa kaydırmaya devam edersiniz.
Örneğin, anahtar ise 2
ve kodlamak istiyorsam house
, ikincisinden 5 basamaklı bir pencere alırım: 14159
ve sonra olur:
h -> i
o -> s
u -> v
s -> x
e -> n
a.- Programınız / fonksiyonunuz / algoritmanız, yalnızca boşluk içermeyen küçük harflerden ve anahtardan oluşan iki parametre alacaktır; bu, 1 (1, 3'ü ifade eder) ve 1000 arasında pozitif bir tamsayı olacaktır ve bu daha fazla olabilir. veya daha az olduğu için PI'nin belirtilen doğrulukla hesaplanmasının ne kadar sürdüğünden emin değilim:
b.- Kodunuzda PI'yi kendiniz hesaplamalısınız, burada karşılaştırmak için temiz bir web sayfası var: Pi Günü . Giriş asla PI değerini 1000 basamağın ötesinde hesaplamamalıdır, yani bu uzunluk (mesaj) + tuşu <= 1000'dir.
Pi hesaplayarak, kodunuzda (kod golf için aptal) kodlamak veya kodunuzda herhangi bir gömülü sabit veya herhangi bir trigonometrik kimlik (2 * acos (0)) veya herhangi bir web referansı kullanmak istemiyorum.
c.- Çıktı sadece şifrelenmiş dize olacaktır.
Bu bir kod golf sorusu, daha kısa kod kazanır!
14 Temmuz 2014'te kazanan cevabı kabul edeceğim.
ArcCos(-1)
?