1
、分割秤砣問題
乙個
40g的砝碼被分成
4塊,這
4塊恰好可以稱出
1-40g
之間所有重量(整數)。求這
4塊分別多重.
答案:1,3,9,27
;這正好組成了三進製數的基,正好有三種狀態:每個砝碼:放左盤,放右盤,不放。所以用它們組合能表示出
1~40
的所有整數。
2
、切割手鍊問題(引自
<<
啊哈,靈機一動
>>,
稍有修改)
qiyan.du
是一位年輕的女士,有一次她去日本旅遊,感覺猶如回到了故鄉,想在旅店包個房間住上7天
,就到了一家店裡,下面是她和店員的對話:
【店員】:房費
20美元一天,必須交現金。
【qiyan.du
】:抱歉,我一點現金也沒有,但是我有條手鍊,總共有
7個環,每環價值都超過
20美元,可以頂7天。
【店員】:好的,把項鍊給我吧。
【qiyan.du
】:不行,我得找工匠給把項鍊割開,每天給你一環,等七天後我有了現金我可以把它們贖回來。
店員通過一番思考,終於同意了。下面難題就是
qiyan.du
要找工匠切割手鍊了。
qiyan.du
找了工匠,工匠說是按切割次數收取費用的,每割一環都要收費,而且將來要拼
接起來也要收費,所以
qiyan.du
想,能不能少切割幾次也能保證每天給店員一環。
qiyan.du
不愧為才女,她只割開乙個環就可以了。
【答案】就是從一端起,把第三個環割開,這樣你就得到了三段,前兩個環,第三個環,
後面的四個環,即1、
2、4的組合。
這樣第一天給店員
1環,第二天給店員那兩個環,要回第一天給的那個環,第三
天在把這個環給店員,第四天要回店員手裡的三個環,給他四個連在一起的環,。。。。
哈哈,下面的我不說你也知道了吧。
(即有兩種狀態,給店員與不給店員,每段鍊子都是這樣參與組合的)
【關於這兩個題的總結】:
這兩個題都是關於將乙個數拆成幾個數的和,要求用這幾個數組合求和出小數這幾個數總和的任意正整數。這幾個數參與組合的方式可以有兩種,或者三種。
要是有兩種,這幾個數就應該構成二進位制數的基(
1,2,4,8….都是2
的非負整數冪)
要是有三種,這幾個數就應該構成二進位制數的基(
1,3,9,27…都是3
的非負整數冪)
本文最後給出下面的題目,聯絡一下,希望大家提供解答。(應該不難了吧)
【問題】
n個雞蛋放到
m個籃子,每個籃子不能空,要求滿足:給定任意乙個小於
n的整數,幾個籃子的雞蛋數加起來就可以等於它。要求輸入n和
m,求出滿足要求的所有可行的雞蛋放法。
oracle的拆分組合查詢
表 msg content 表 msg contact person 想要得到的效果 要點分析 結果表和表1不同的地方是receiver欄位加入了表2的真實姓名 實現方式 第一步 拆分表1的字段 select c.msg content id as contentid,regexp substr r...
陣列合併,拆分
有這麼兩個陣列 let metrodates 2008 01 2008 02 2008 03 let figures 0,0.555,0.293 想要這樣的結果 let result let result for let index in metrodates 此方案為最原始方法,簡單 let re...
選值 二分 組合數
題目描述 給定n個數,從中選出三個數,使得最大的那個減最小的那個的值小於等於d,問有多少種選法。第一行兩個整數n,d 1 n 100,000,1 d 1000,000,000 第二行n個整數滿足abs ai 1,000,000,000。資料保證a單調遞增。輸出乙個整數表示滿足條件的選法。4 3 1 ...