1. 程式人生 > >進位制知識及相關考察思維的題

進位制知識及相關考察思維的題

一、進位制相關知識
1.進製表示

這裡寫圖片描述
表示b進位制下的n+1位數。
2.進位制之間的轉換

  • b進位制向十進位制轉換(按權值展開)
    這裡寫圖片描述
    十進位制向b進位制轉換:
    • 整數部分除以基數並倒取餘數。
    • 小數部分乘以基數,並順取整數部分

二、題目
1.【天平I】
一個天平,有N個重量未知的砝碼,砝碼重量可由你自由確定。砝碼可任意放在天平的左右兩邊,但要求稱出從1到M之間所有的重量,現給出N的值,請問M最大值為多少。
【分析】如下圖分析
這裡寫圖片描述
2.【天平II】
一個天平,砝碼分別為1g、3g、9g、27g、…、6561g…,每個砝碼只有一個,要稱重的物品放在天平的左側,而砝碼允許放在天平的左右兩側。已知一個物品的質量N (N≤10^8 ),問如何稱重?
【分析】
  因為砝碼可以放右側、不放或者放左側三種狀態,因此可以將N轉換成三進位制後,將三進制中的0、1、2三個狀態轉換成 0、1 、-1 ,具體的說,就是0和1不變,2變成-1後,其高一位加1。

3.【天平III】
一個天平,砝碼分別為1g、3g、9g、27g、… 、6561g…,每個砝碼只有一個,要稱重的物品放在天平的左側,而砝碼只允許放在天平的右側。將由這個系統可以稱出來的重量按從小到大的順序進行排列,得到下列序列:1,3,4,9,10,…。問其中的第K個重量是多少?(資料規模:K≤10^5)
【分析】
  只允許放右側,那麼對於一個砝碼只有兩種狀態,要麼放,要麼不放,那麼可以用二進位制來處理。將K轉化為二進位制,從低到高對應位上是1,則對應從小到大的對應砝碼就使用,是0則表示該砝碼未用。

4.有一個黑匣子,黑匣子裡有一個關於 x 的多項式 p(x) 。我們不知道它有多少項,但已知所有的係數都是正整數。每一次,你可以給黑匣子輸入一個整數,黑匣子將返回把這個整數代入多項式後的值。你可以在幾步之內還原出整個多項式?
【分析】
首先,輸入 1 ,於是便得到整個多項式的所有係數之和.不妨把這個係數和記作 S .下一步,輸入 S + 1 ,於是黑匣子返回
an * (S + 1)^n + an-1 * (S + 1)^n-1 + … + a1 * (S + 1)^1 + a0
把這個值轉換成 S + 1 進位制,依次計算出每一位上的數,它們就是多項式的各項係數了。
  為什麼是S+1?
--確保進位制的基數大於最大的係數,第二次帶入就應為係數和+1。