SORU
8 NİSAN 2009, ÇARŞAMBA


Tasarımı f(f(n)) == -n fonksiyonu

Son görüşmemde benim bir sorum var:

Bir tasarım fonksiyonu f, gibi:

f(f(n)) == -n

n * * * * 32 bitimzalı tamsayı; karmaşık sayılar kullanabilirsiniz. aritmetik.

Eğer sayılar dizi için böyle bir fonksiyon tasarımı. öyleyse en büyük aralığı Olası için tasarım.

Herhangi bir fikir?

CEVAP
8 NİSAN 2009, ÇARŞAMBA


Onlar beklenen bir şey söylemedin... Burada statik bir çözüm (Haskell). Temelde en önemli 2 bit karıştırıyor:

f :: Int -> Int
f x | (testBit x 30 /= testBit x 31) = negate $ complementBit x 30
    | otherwise = complementBit x 30

(Python) dinamik bir dilde çok daha kolay. Argüman ise sadece kontrol X ve döndüren bir lambda iade-X: bir sayı

def f(x):
   if isinstance(x,int):
      return (lambda: -x)
   else:
      return x()

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chanre Joubert

    Chanre Joube

    27 Temmuz 2012
  • FRED

    FRED

    1 EKİM 2005
  • Glyn Dewis

    Glyn Dewis

    25 AĞUSTOS 2007