如何確定一袋米中的米粒數量是偶數還是奇數?

點選上方卡片關注👆
假設給你一袋米,在儘量不逐一數的情況下,如何用簡單又高效的方法確定這一袋米里面的米粒數量是偶數還是奇數?一起來看看答主們的回答吧
如何確定一袋米中的米粒數量是偶數還是奇數?
|答主:DBinary
好的,作為一個理工生,一般不整那麼多花裡胡哨的,想知道奇數還是偶數,那就得算算大米到底有多少顆。
高贊確實有類似的裝置可以實現這種數大米的功能,但是畢竟這種裝置不便宜,現在有工業版本的,那有沒有家用版本的。
比如我抓了一小撮大米,然後撒在桌面上,為什麼只有一小撮呢?
第一:浪費糧食是不好的。
第二:抓太多了大米之間連在一塊,得用更復雜的方法,我懶。
能不能用手邊的裝置來算算到底有多少顆呢?
比如我們用手機拍一張照片,像這樣。
那麼,老規矩,為了方便影像後續處理,我們直接處理成灰度圖(其實我後面琢磨了一下,不如去抓 r 通道效果更好,湊合看吧不管了)
然後我們看看背景顏色的灰度值
還有大米的灰度值
直接根據顏色差值設定閾值二值化影像
可以看到,效果不太好,為啥,因為因為背景光照不均勻有些大米內部顏色和背景混色了,一些大米出現了中空的情況,也好辦,弄個導數的二值濾波再來一次。
好,舒服多了,之後就是簡簡單單判定聯通的白色區域了,然後我們標定後,把計數文字弄回原始影像中,可以看到,程式大米數的非常好,一撮大米一共 61 個,灰常準確有效。
應該算是影像 CV 比較入門級的知識點,下次拿去折磨下學生好了。
|答主:Kelvin Li
整點專業的給你們看看:
把米從紅色箭頭的地方倒進去,裡面有振動喂料器,可以把米振動下落。在下落過程中,有三臺線掃相機給米拍照,不但能知道多少粒,還能給米做個使用者畫像。
|答主:程墨Morgan
我看各專業精英都有方法,作為計算機方向,我也忍不住出一計——
MapReduce 其實就是把龐大資料分為多塊小一點的資料(Map),然後再把每個小塊資料的結果總結起來(Reduce),就得到了結果。
就這個問題來說,我把一袋米分給 10 個人,讓他們每人回頭告訴我分到的那一份是奇數還是偶數,根據:
  • 奇數+奇數=偶數
  • 偶數+偶數=偶數
  • 奇數+偶數=奇數
知道這 10 個人分到米粒的奇偶,我就知道整袋米的奇偶,這就是一次 MapReduce。
當然這 10 個人也不用自己逐一去數米,他們每個人也可以把分到手的米粒分給其他 10 個人,要那 10 個人給出分到米粒的奇偶。
下一層的 10×10=100 個人也不用自己逐一去數米,分給他他們的下家。
……
最後米粒肯定會分到某一層的時候 10 個人只有分到 1 粒米(奇數)或者 0 粒米(偶數)的時候,那時候就可以反向給上家彙報分到他們的奇偶性。
上家繼續向上彙報奇偶性。
……
最後奇偶性彙報到我這裡,我就可以推匯出整袋米粒的奇偶性了。
你看,整個過程中並沒有逐一數米,分米的時候也不用絕對平均,差不多平均別累著某些人就好,就算分米不平均也不影響結果正確性。
就和《三體》裡的秦始皇人肉計算機一樣,只要人夠多,就搞定了:-)
這就是計算機專業的解答。
題圖來源:答主@DBinary
知乎熱門文章

為什麼人死後會很快發臭,而豬肉羊肉不會那麼快?

有沒有可能,氧氣是種慢性毒氣,通常需要 70-100 年來殺死人類?

有什麼東西是外國人吃,而中國人不吃的?

本文內容來自「知乎」
點選上方卡片關注
轉載請聯絡原作者
👇點選【閱讀原文】,看更多精彩回答

相關文章