12個球有1個重量不同,給你一個沒法碼的天秤,只能稱3次把它找出來
將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兩個有一個異常,而且是比正常的重,將兩個放在天平上一稱就可以了(第三次)。
這樣三次就能稱出來了,而且還能知道異常的是輕重。
相關推薦
12個球有1個重量不同,給你一個沒法碼的天秤,只能稱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個
一道演算法題:12個黑球和1個白球圍成一個圓
問題: 桌上有12個黑球和1個白球圍成一個圓,按順時針方向順序數到13就拿走對應的一個球, 如果要求最後拿走的是白球,請問該從哪個球開始數數。 分析: 從最後一輪開始考慮,按輪次倒推。可以用遞迴法
今有7對數字:兩個1,兩個2,兩個3,...兩個7,把它們排成一行。 要求,兩個1間有1個其它數字,兩個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
ACM 給你一個整數Q,找出一個最小的正整數N,使得它的各位之積等於Q,如果不存在,請輸出-1 輸入:第一行為組數,
#include<iostream> #include<stdio.h> using namespace std; bool smallten(int data) { if((data<10)