SORU
9 Temmuz 2009, PERŞEMBE


Bazı dolar değer verilen paralar tüm kombinasyonları bulabilirsiniz

İçin yazıyordum, bir parça kodu, mülakat hazırlık birkaç ay önce buldum.

Kaldım yoruma göre, bu sorunu çözmek için çalışıyordu:

Sent bazı dolar değeri (örneğin 200 = 2 dolar, 1000 = 10 dolar) dikkate alındığında, dolar değer oluşturan sikke tüm kombinasyonları bulmak. Tek kuruş, nikel, dime ve çeyrek var. (çeyrek = 25, kuruş kuruş = 10 kuruş, nikel = 5 sent, kuruş = 1 kuruş)

Eğer 100 verildi, örneğin, cevap olabilir< / ^ br . (S) 4 çeyrek 0 kuruş(s) 0 nikel(s) 0 kuruş< / ^ br . 3 çeyrek(ler) 1 kuruş(s) 0 nikel(ler) peni 15< / ^ br . vb.

Bu iki yinelemeli ve özyinelemeli şekilde çözülebilir sanırım. Özyinelemeli benim çözüm oldukça hatalı olduğu, diğer insanlar bu sorunu çözmek nasıl olacağını merak ediyordum. Bu sorunun zor kısmı mümkün olduğunca verimli hale getirmek.

GÜNCELLEME

CEVAP
10 Temmuz 2009, Cuma


Uzun zaman önce bu konuyu araştırdım ve benim little write-up on it okuyabilirsiniz. İşte Mathematica source.

Üreten fonksiyonlar kullanarak, sorunu kapalı-form sürekli-zaman bir çözüm elde edebilirsiniz. Graham, Knuth ve PatashnikSomut Matematikbu kitap, sorunun oldukça kapsamlı bir tartışma içerir. Aslında senin *n*th katsayısı için değişiklik yapmanın yolları numarası olduğu bir polinom tanımlayınndolar.

Sayfa 4-5 yazı Haritayı nasıl kullanabilirsiniz Sturm (veya başka uygun bir bilgisayar Cebir sistemi) bilgi işlem cevap için 10^10^6 dolar birkaç saniye içinde üç satır kod.

(Bu 75 Pentium...) bir kaç saniye bu yeterince uzun oldu önce

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Amazon Web Services

    Amazon Web S

    8 NİSAN 2009
  • Marina and The Diamonds

    Marina and T

    8 Temmuz 2008
  • SHAYTARDS

    SHAYTARDS

    1 EKİM 2008