思維啟發之根據一道題的演算法發現自己的思維侷限性

2021-06-25 14:45:08 字數 1524 閱讀 7687

題:有12大小相同顏色相同的球,有一顆球重量不同,有乙個天平,最盡量少的次數測出哪顆球有問題,有問題的球相對於其它球是重還是輕!

發現思維侷限的由來:這道題我之前想法是天平將球6:6稱,2:2的稱,1:1,這幾種是人常規思維,和我一樣,後面又想到2:10、3:9、4:8這幾種,因為後面數是前面數的倍數,我想通過這個關係來找,想起來只有天平, 沒有砝碼,看不到具體的倍數關係,只能看到天平左邊傾斜還是右邊,就放棄了這幾種想法,研究前面的3中,發現6:6分的時候,我可以再拆開3:3的,這時候有人提出了一種想法,我理解起來也有點費事,磨了半天的時間理順了想通了的過了幾遍才發現自己的思維的侷限在哪,所以接下來我先敘述我推崇的他這種演算法:

第一步:將球標號1-12號球,分為三堆,我們就分為1-4、5-8、9-12,將任意兩堆放到天平左右兩邊,假設我左邊放1-4,右邊放5-8,剩下9-12

第二步:看天平兩邊是否平衡,如果平衡說明了問題的球在第三堆(思維侷限1:只關注天平兩端,剩下的也是資訊

第三步:這下好解決了,這裡就簡單了,你可以拿1-8任意一球來和這四顆稱,最壞的情況是你這樣稱了三次,三次天平還平衡第四顆是有問題的,想要知道重量在稱一次

還有一種,任意拿兩顆標準球來和這四顆中任意兩球比,看天平平衡來確定

還有一種,任意拿三顆標準球來和這四顆球中的任意兩顆球來對比----->結束

第四步:第二步中天平不平衡而引發的問題,如果左邊1-4>右邊5-8(>代替左邊重,代表天平哪邊更低,這裡有人會犯迷糊,左重右只能說明這八顆球中有問題球,有可能是在左邊,那這顆球是重的,有可能在右邊,那這顆球是輕的),將左邊中隨意拿出去3顆球放出去(假如拿出去的球是2-4),將右邊盤隨機拿3個球放左邊盤上(假如是6-8),右盤上放三個標準球,這樣有三種情況(左》右、左《右、左==右)下面依次來分析(侷限思維2:在第四步中說明問題球在1-8中,卻敢將其中有可能是答案的球丟擲去

第五步:左==右:說明6-8和拿來的三個標準器是相同的,說明了兩點問題:在拿出去的三顆球(2-4)中,且問題球是重的,3顆球好解決了,按第三步的來-->結束

第六步:左》右:沒有拿出去2-4左》右,拿出去換了球還是左》右,說明問題出在1和5身上,用標準球測-->結束

第七步:左《右:天平傾斜方向變了,說明了兩點問題:問題球在6-8中,且問題球是輕的--->

第八步:還沒測出來重複第四步,>換做< -->解決

總結:思維過於僵硬,即使別人說出來還要多請教兩次才能弄懂

**:附在最後

優點:執行效率高

缺點:程式設計效率太低了

第二種方法:常規,將球分為4個3,分別3:3稱

優點:程式設計效率大大高於上面的方法

缺點:執行效率要比上面的方法小一點

一道演算法題

兩個燒杯,乙個放糖乙個放鹽,用勺子舀一勺糖到鹽,攪拌均勻,然後舀一勺混合 物會放糖的燒杯,問你兩個燒杯哪個雜質多?一樣多吧 對的 為啥?是不是因為 糖和鹽本來就是均勻的 因為,就算不攪拌均,你放一勺過去,那邊放一勺不含雜質的過來,那麼都是一勺雜之 如果攪拌均勻的話也是一樣 小依 21 45 32 也...

一道演算法題

1.上午主要做了對翻譯任務的劃分,下午把 翻譯完畢。2.明天要講的演算法題 對乙個集合,求出其連續元素組成的子集中,和最大的子集 我對這道題的理解是 1 若集合中最小值大於0,意味著所有的都大於0,則最大的子集和,為所有值加起來 2 若集合中最大值小於0,意味著所有的都小於0,則最大的子集和,為集合...

一道演算法題

include using namespace std const int size 5 int max sub array const int a,int n,int m int max matrix const int a size int row,int col,int subsize int...