2013-07-05 27 views
-4

如何在10個盒子中分配1000 $,以便在$ 1到$ 1000(包括兩個端點)之間的任何金額都可以作爲這些盒子的一些組合給出。算法謎

請提供關於如何處理這個問題的提示。我嘗試過,但無法提供任何解決方案。

+4

大提示:2的權力 –

+3

這個問題似乎是脫離主題,因爲它是關於不相關的編程。 –

+0

@Lior Kogan:你可以提供任何我可以發佈此類問題的鏈接嗎? – user122345656

回答

2

將基數爲2的所有數字從1寫入1000。這些數字自2^10 = 1024以來需要十位。你的方塊的最大編號爲2^8,最後編號爲4892^02^8489爲你提供了10個方格和2^0 + 2^1 + ... + 2^8 + 489 = 2^9 - 1 + 489 = 511 + 489 = 1000),這些位表示給你證明了你可以編寫任意數字到1000作爲這些框(顯然511以下的任何東西都可以,對於大於511的任何東西,減去489,然後注意,由於它保證小於或等於511,所以可以將剩餘部分作爲其他8個框的組合來編寫)。

+0

非常感謝。我會爲此努力。 – user122345656

3

你有沒有做二進制到十進制轉換?取1到1000之間的任何數字,然後嘗試將其轉換爲二進制。你會找出你正在處理中的2

權力分配以2的冪,然後你需要的任何金額,只需將其轉換成二進制和挑選哪些位設置爲1

那些箱子
+0

你的意思是「你在處理2的權力」,你能詳細說明一下嗎? – Aravind

+0

如何將小數轉換爲二進制?你有一種普通比例= 2的GP系列。就像你需要轉換15(說數量)那麼你將有:** ......,16,8,4,2,1 **這種類型的東西和15,你需要最後四個數字(8 + 4 + 2 + 1)意味着這些比特被設置爲1給你1111爲15.現在,就拼圖而言,把數量放在框中的形式2的權力,然後15,將其轉換爲二進制,找到設置位,並選擇這些數字框。 –

+0

Thanx爲你的答我得到了邏輯。 – user122345656