1. 程式人生 > >12個球有1個重量不同,給你一個沒法碼的天秤,只能稱3次把它找出來

12個球有1個重量不同,給你一個沒法碼的天秤,只能稱3次把它找出來

先將球分三組,每組四個,記為A,B,C。

將A,B放在天平兩端(第一次)。有兩種結果:

一、結果一,平衡,那異常的在C組。

1、取A組的三個放在一端,C組的三個C1C2C3放在一端(第二次)。

2、平衡:C4異常,把C4和A組的一個稱一次就知道C4是輕還是重了。

3、不平衡:已經確定C1C2C3中的一個是異常的,而且也知道是輕還是重了,假設是重異常。

4、取C1和C2進行稱重,哪個重就是哪個異常,如果平衡就是C3重異常。

二、結果二,不平衡,那異常的在A,B組裡。現將重的四個記為A組,這樣A組裡的四個編號為A1,A2,A3,A4。B組裡的四個為B1,B2,B3,B4,從C組裡取一個記為C,重新編組:第1組為A1A2C,第2組A3A4B1,第3組B2B3B4。將第1組、第2組放在天平兩端(第二次):

1、如果平衡,那異常在第3組B2B3B4裡,而且是比正常的輕。只要一次就可以了,任取兩個一稱(第三次),就知道了。

2、如果第1組重,那就是A1A2B1三個有一個異常,將A1A2分開放在天平兩端,哪個重,就是哪個異常(重);平衡,就是B1異常(輕)。

3、如果第2組重,那就是A3A4兩個有一個異常,而且是比正常的重,將兩個放在天平上一稱就可以了(第三次)。

這樣三次就能稱出來了,而且還能知道異常的是輕重。

相關推薦

121重量不同,一個沒法,只能3出來

先將球分三組,每組四個,記為A,B,C。 將A,B放在天平兩端(第一次)。有兩種結果: 一、結果一,平衡,那異常的在C組。 1、取A組的三個放在一端,C組的三個C1C2C3放在一端(第二次)。 2、平衡:C4異常,把C4和A組的一個稱一次就知道C4是輕還是重了。 3、不平衡:已經確定C1C2C3中的一個是異常

12硬幣中一個不知道輕重的假幣,用天平將出來

    問題1:假設有8個硬幣,裡面有一個硬幣是假幣,並且知道它是重了還是輕了(假設是輕了),現在給你一個天平,要求用最小次數將這個硬幣找出來.      這時候可以用一種類似二分法的演算法來找出這個假幣.將左邊4個和右邊4個比較,因為知道硬幣是輕了,所以很快就能確定那堆

12,其中1和其他11重量不一樣,一個天平,3出不一樣的那個

很常見的一道邏輯題,只使用已知條件,不借用其他外力。 設12個球分別是:A1,A2,A3,A4,B1,B2,B3,B4,C1,C2,C3,C4 第一次稱:天平兩側分別是,左側:A1,A2,A3,A4,右側:B1,B2,B3,B4 若平衡,則壞球在C組中。  第二次稱C1,

12用天平3找到重量不同的那個

將12個球分成3組,每4個一組 1  將4個A放到天平左邊,4個B放到天平右邊;可能出現2種情況: a:平衡 b:不平衡 1.1 如果是a 情形  說明在天平上的八個球都是普通球,而剩下的4個球裡面有一個是特殊球,我們把不知道的球記為 X ,普通球記為 Y,那麼現在有4個X

經典智力題【一】十二一個與其他重量不同,試著三

找異類球。題目中只告訴有一個球重量與其他不同,並未告訴是重還是輕,這是一個小陷阱。因此需要使用標準球的資訊。 第一次分成3組,每組4個球,去其中兩組,放到天平上,比較重量。 此時天平會出現兩種情況:平或者不平。 【1】天平平的時候說明這八個球質量都相等,為標準球。剩下4個

一道演算法題:121圍成一個

問題: 桌上有12個黑球和1個白球圍成一個圓,按順時針方向順序數到13就拿走對應的一個球, 如果要求最後拿走的是白球,請問該從哪個球開始數數。 分析: 從最後一輪開始考慮,按輪次倒推。可以用遞迴法

7對數字:兩1,兩2,兩3,...兩7,它們排成一行。 要求,兩11其它數字,兩2間2其它數字,以此類推

一、問題描述 今有7對數字:兩個1,兩個2,兩個3,…兩個7,把它們排成一行。 要求,兩個1間有1個其它數字,兩個2間有2個其它數字,以此類推,兩個7之間有7個其它數字。如下就是一個符合要求的排列:

12小球3得到質量不同的那個小球

問題:          有12個小球,其中有一個的質量與其它小球不同。有一個天平,但沒有砝碼。將這12個小球在這個天平上稱3次,得到質量不同的那個小球。 思路:          對於這個問題,我們無法知道,那個質量不同的小球相比其它的小球,質量是輕了,還是重了。這也

java算法面試題:遞歸算法題2 第1個人10,第2比第1人大2歲,依次遞推,請用遞歸方式計算出第8個人多大?

else oid 算法題 body println 算法 ring swift java算法 package com.swift; public class Digui_Return { public static void main(String[] arg

程式設計題:將字串間多空格變為1空格

解法一: char str[]="how are you "; int i=0,j=0; //其中\0表示字串結束 while(str[j]!='\0'){ if(str[j]!=' '){ str[i++]=str[j++]; }

淺談"n"和"m盒子"之間的亂倫關係

無視標題,從我做起 update in 2018.10.1: 補充了"至多為1的四中情況" 這玩意兒的官方名字應該是叫"Twelvefold way",共用12種情況。 球異,盒同 不空 該情況為經典的第二類斯特靈數 設\(f[n][m]\)表示答案。 \(f[n][m] = f[n - 1][m - 1]

筆試題——編寫java程式:輸入一個字串,判斷英文字母,數字,其它的字元

public static void main(String[] args) { int count_abc=0,count_num=0,count_oth=0; //輸入一串數 Scanner scan=new Scanner(System.in); Stri

2棧實現1佇列

這是一道很經典的面試題,也是我們必須要搞清楚的一個問題。 我們很清楚的知道棧和佇列最根本的區別是:棧是先進後出,而佇列是先進先出。 那麼問題就來了,如何用2個棧實現一個佇列呢? 比方說現在要入佇列4個元素:a b c d,那麼我很明顯出佇列時必須是按照

4 概念,1 動作,讓應用管理變得更簡單

作者: 劉洋(炎尋) EDAS-OAM 架構與開發負責人 鄧洪超  OAM spec maintainer 孫健波(天元)  OAM spec maintainer 隨著以 K8s 為主的雲原生基礎架構遍地生根,越來越多的團隊開始基於 K8s 搭建持續部署、自助式釋出

CF D - Beautiful Graph(dfs 染色問題吧)一個圖,每個節點可以賦值1,2,3三種數字,相鄰的節點的和必須是奇數,問多少中方法。

題意: 給你一個圖,每個節點可以賦值1,2,3三種數字,相鄰的節點的和必須是奇數,問有多少中方法。 分析: 很容易就可以發現如果這個圖中是有奇數的環的話,那這是肯定不行的 ,否則這個環的貢獻是為2^sumji+2^sumou , 總貢獻為每個的環的貢獻相乘,一個點也為環; #in

一塊錢一瓶水 兩瓶子可以換一瓶水 100塊錢 可以喝多少瓶水

static void Test() { int i = 100; //瓶子數 int sum = 0; //喝到多少瓶水 sum = i;

一個 n 點,m 條邊的無向圖,求至少要在這個的基礎上加多少條無向邊使得任意兩點可達~

給你一個 n 個點,m 條邊的無向圖,求至少要在這個的基礎上加多少條無向邊使得任意兩個點可達~  輸入描述: 第一行兩個正整數 n 和 m 。 接下來的m行中,每行兩個正整數 i 、 j ,表示點i與點j之間有一條無向道路。 輸出描述: 輸出一個整數,表示答案 示例1 輸入 4 2 1 2 3

別再問我 new 字串建立了幾物件了!我來證明看!

我想所有 Java 程式設計師都曾被這個 new String 的問題困擾過,這是一道高頻的 Java 面試題,但可惜的是網上眾說紛紜,竟然找不到標準的答案。有人說建立了 1 個物件,也有人說建立了 2 個物件,還有人說可能建立了 1 個或 2 個物件,但誰都沒有拿出幹掉對方的證據,這就讓我們這幫吃瓜群眾們陷

poj3615 一個向圖,然後對於特定的點A與B,要求出A到B之間所有可行路徑的單段路距離最大值的最小值.

#include<cstdio> #include<algorithm> #define INF 1e9 using namespace std; const int maxn = 300+10; int n,m,t; int d[maxn][maxn]; void floy