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

  • cekehechu

    cekehechu

    20 HAZİRAN 2006
  • michellefeng's channel

    michellefeng

    26 Kasım 2006
  • nigahiga

    nigahiga

    21 Temmuz 2006