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

  • Influencer Plus

    Influencer P

    2 Ocak 2013
  • ItZWaffleS420

    ItZWaffleS42

    9 EYLÜL 2011
  • William Sledd

    William Sled

    24 EYLÜL 2006