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

  • Huot Media

    Huot Media

    7 Mayıs 2010
  • mipd1980

    mipd1980

    25 EKİM 2006
  • Paste Magazine

    Paste Magazi

    28 AĞUSTOS 2008