如何优雅地测量一只猫的体积?
導(dǎo)讀:如何科學(xué)而優(yōu)雅地測量一直喵的體積,并不使它被傷害?
各位鏟屎官,你有想過嗎?
前情提要:
Monte Carlo 測貓法:
把貓裝進(jìn)已知體積為V_box的盒子,在盒子內(nèi)均勻取N個隨機(jī)點(diǎn),其中M個在貓體內(nèi),貓體積近似為V_box*M/N。推理及討論見后面的supplemental materials.
要實(shí)現(xiàn)這一測貓法,需要一種瞬時確定某點(diǎn)是貓還是非貓的方法,否則在貓運(yùn)動的情況下,會測得貓掃過的體積而不是貓體積。
我決定用下圖所示的方法。。。
盒子壁上裝盡量多的激光燈,盒子壁用感光材料。若要確定某點(diǎn)是貓還是非貓,則讓所有激光燈射向目標(biāo)點(diǎn)。若目標(biāo)點(diǎn)是貓,則激光會被貓擋住因此盒子壁上任何一點(diǎn)都不會檢測到激光。因此我們用以下原則判斷目標(biāo)點(diǎn)是貓非貓:
若有盒子壁上任何一點(diǎn)檢測到激光,說明目標(biāo)點(diǎn)非貓。
否則認(rèn)為該點(diǎn)是貓。
測量可以在很短的時間內(nèi)完成,足以快到忽略貓的運(yùn)動。
============
當(dāng)然這種方法是有缺陷的,貓身上一些凹陷部位可能會成為激光無法穿過的死角,因此被算入貓體積。
一個充分不必要的解決方法是讓貓變成凸貓(convex cat), 即任取兩點(diǎn)屬于貓,兩點(diǎn)之間的線段上的點(diǎn)都屬于貓,滿足這一條件的貓叫做凸貓,如下圖所示。
下圖是一個現(xiàn)實(shí)生活中凸貓的例子。。(圖片來自網(wǎng)絡(luò))
對于凸貓,該方法測得的貓體積即為真貓體積,證明見supplemental materials中的夾逼測貓法。
但是這種方法是不貓道的,因?yàn)樨堖湫灾杏羞@樣的話:
We hold these truths to be self-evident, that all cats are created equal (大霧), and they are endowed by their Creator with certain unalienable rights, that among these are the rights to stand up, lie down, turn around, groom themselves and stretch their limbs ...
而凸貓顯然(至少)剝奪了貓咪 stretch their limbs 的自由。。。
好在對于非凸貓,該方法也不是那么糟糕。
下面我將展示給大家,即使對于非凸貓,用該方法測出來的貓體積
首先本身就是一種很合理的貓體積定義
其次實(shí)際操作中與一般意義上的貓體積差別不大
=============
要測量貓體積,首先要定義貓體積。
然而“貓有毛兮毛有枝,本喵在哪你不知。”
貓的體積定義并非顯而易見的,主要有兩個困難:
貓的表面是凹凸不平的,那些凹陷和縫隙怎么算?客觀標(biāo)準(zhǔn)是什么呢?
喵是測不準(zhǔn)的。理論上來講喵的電子云可以想你時你在天邊,想你時你在眼前,哪里算邊界?
嗯。。化學(xué)家出場了。。。
化學(xué)家測貓大法:
把一個直徑一定的毛線球用一定力量按在喵體表滾一遍,把毛線球與喵接觸的內(nèi)表面軌跡包括的空間的體積視為貓的體積,并稱之為Van de Waals cat volume?.(好吧。。。我知道這不叫Van de Waals體積。。但是這個體積的實(shí)際名字土掉渣了。。哪有Van de Waals高大上。。。)
如下圖。
這一體積定義包含兩個要素。毛線球的直徑和按在貓身上的力量,前者決定了凹陷和縫隙算與不算的體積和形狀標(biāo)準(zhǔn)——毛線球放得進(jìn)就算,否則不算;后者決定了貓邊界的標(biāo)準(zhǔn)——和毛線球之間的作用力達(dá)到某一值為準(zhǔn),啥啥電子云都不好使,就看力的大小。通過改變毛線球和力量的大小,可以控制貓體積的精細(xì)程度。究竟多精細(xì)不重要,重要的是可以定義一個體積的客觀標(biāo)準(zhǔn)。
=============
仿照這一定義,我將我測得的貓體積定義為 Van de Bars cat volume。。。如下圖。。。
準(zhǔn)確來說,是一個直徑相當(dāng)于激光束粗度,無限長的bar在貓表面滾過定義的貓體積。。。你看。。。我測的體積也是有一個很有道理的定義的嘛。。。。
同時我想強(qiáng)調(diào),相對于其他回答,該方法對貓毛可以有很嚴(yán)格的處理,詳見supplemental materials中對貓毛的討論。
============
我認(rèn)為實(shí)際測量中Van de Bars 貓體積和我們一般認(rèn)為的貓體積差異并不大。
比如看下圖
E為克萊因貓,虛線部分在貓體內(nèi)。。
對于碗狀貓(bowl cat),Van de Bars 貓體積確實(shí)會把貓肚子下面那塊空間誤算做貓體積的一部分。但是對弓狀貓(bow cat)、椅狀貓(chair cat)的測量都是準(zhǔn)確的,因?yàn)楣饩€可以從圖上箭頭的角度穿過。甚至小昭貓(shaw zhao cat)這個我本來覺得挺奇葩的形狀下其實(shí)并沒有任何問題。這樣一來,Van de Bars 貓體積在多數(shù)情況下和我們一般認(rèn)為的貓體積的區(qū)別也就僅限于耳廓內(nèi)的空間、個別身體縫隙之類的光穿不過的死角。。。我覺得還是能接受的。。。
為了盡量避免碗狀貓對測量的影響,我們要大力鼓勵貓咪充分 stretch their limbs. 這也提示我們,愛護(hù)貓咪對我們藍(lán)星人也是有益的。。。所以愛護(hù)貓咪,人人有責(zé),no cats should be convex!!!
=============
綜上,我設(shè)計(jì)了一種測量Van de Bars 貓體積的Monte Carlo測貓法。我覺得這是目前回答里最貓道最優(yōu)雅的。。。因?yàn)樗U狭素堖渖煺股眢w、弄干身體、不受恐嚇、自由站起、躺下、翻身的權(quán)利。。。而且對貓體積有嚴(yán)謹(jǐn)而實(shí)用的定義。。。
==============
Supplemental materials:
Monte carlo 測貓法的推理:
把貓裝進(jìn)體積為V的盒子,在盒子內(nèi) uniform randomly 取N個 independent and identically distributed (i.i.d.) 的點(diǎn)組成樣本,記為 SAMPLE = {(xi, yi, zi) | i in range(0, N)}。
定義如下 function:
I(x, y, z) = 1 if (x, y, z) in CAT else 0
(即確定一個點(diǎn)是貓還是非貓)
假設(shè)貓體積(V_cat)不變,且貓的運(yùn)動與取點(diǎn)不相關(guān)(即貓既不接飛鏢也不躲飛鏢,見評論區(qū)知友討論),則I(x, y, z)具有如下分布:
I(x, y, z) = 0 with a probability of 1-V_cat/V_box
I(x, y, z) = 1 with a probability of V_cat/V_box
與貓運(yùn)動與否不相關(guān)。
根據(jù)這一分布I(x, y, z)的期望值是V_cat/V_box.
{I(xi, yi, zi) | (xi, yi, zi) in SAMPLE} 是一個服從上述分布的 i.i.d. 的sample。
根據(jù)大數(shù)定理(law of large numbers), sample mean almost surely converges to expected value. 所以可以用 sample mean 估計(jì)期望值,即:
V_cat/V_box ~= sum(I(xi, yi, zi))/N
記M為在貓體內(nèi)的樣本點(diǎn)數(shù)量,則
V_cat/V_box ~= sum(I(xi, yi, zi))/N = M/N
所以V_cat ~= V_box * M/N
關(guān)于貓毛的討論
上述方法等價于把貓邊界定義為貓體表透光率顯著不同于空氣以至于足以使得sensor檢測到差異的位置。可以想象這應(yīng)該包括了貓毛,而且是不受壓迫不變形的貓毛。
我認(rèn)為這也是該方法的一大優(yōu)勢——這是真正的無損測真貓,而不是測 a rat-like creature that lives inside a cat (見 @蒼原雪在本問題下的回答)。。。其他方法,包括彩虹糖,都是有壓迫的。實(shí)際上彩虹糖法測的是彩虹糖的形狀和大小、彩虹糖與貓接觸處的壓強(qiáng)定義的Van de Waals cat volume. 因?yàn)檫@一壓強(qiáng),長毛貓的測量可能和我們預(yù)想的含貓毛體積有較大區(qū)別。
Van de Bars 貓體積和其他貓體積的對比?(不適用于克萊因貓)
VS 真 貓體積
這里真貓體積指刨除一切空隙的貓體積。顯然,Van de Bars 貓體積 >= 真貓體積。所以Van de Bars 貓體積是真貓體積的一個upper bound. 可惜的是它們之間的差是沒有任何保證的,比如口袋貓。
VS Van de 毛線球 貓體積
我覺得Van de Bars 貓體積應(yīng)該是與bar同樣直徑的毛線球定義出的Van de 毛線球貓體積的upper bound,但是我沒仔細(xì)證。。。因?yàn)楸热鏱owl cat這樣的存在,它們的差同樣是沒upper limit的。。。
VS Convex Hull (附夾逼測貓法)
一個set的convex hull 是包含這個set且convex的最小的set。如圖3和下圖。
易知Convex hull 貓體積 >= Van de Bars 貓體積 >= Van de 毛線球貓體積 >= 真貓體積。對于convex貓,因?yàn)樨埍旧砭褪莄onvex的,所以貓和貓的convex hull是同一集合,所以Convex hull貓體積 = 真貓體積,所以convex cat 的真體積 = Van de 毛線球體積 = Van de Bars體積 = Convex hull 體積。。。。。。夾逼測貓法。。。。convex 貓真好測。。。各種體積都一樣。。。all cats should be convex。。。
關(guān)于克萊因貓
準(zhǔn)確講克萊因貓應(yīng)該是克萊因貓皮(Klein Cat Skin),因?yàn)檫@是一個曲面而不是實(shí)體,而且這個曲面不能把空間分為內(nèi)、外互不連通的兩部分,所以也無法把克萊因貓體積定義為克萊因貓皮圍成的空間的體積。仔細(xì)看Fig. 6 E 的話,克萊因貓“體內(nèi)”的空間可以通過尾巴-食道-口和外界相通。所以嚴(yán)格講,克萊因貓無體積。
但是這并不妨礙我們繼續(xù)強(qiáng)測克萊因貓的 Van de 毛線球體積和 Van de Bars 體積,只是不同于之前可以把這作為真貓體積的近似,現(xiàn)在我們必須將其作為一種獨(dú)立的體積定義使用。
在克萊因貓上 Van de Bars 貓體積比 Van de 毛線球貓體積魯棒。因?yàn)楫?dāng)毛線球小到克萊因貓可以吞下去的時候,毛線球會沿著口-食道-尾巴通路把喵“體內(nèi)”滾個遍,然后 Van de 毛線球體積為零。。。而 Van de Bars 體積因?yàn)槭褂玫氖菬o限長的bar, 所以即使bar直徑再小也無法access喵“體內(nèi)”的空間。這允許我們用較細(xì)的bar來提高測量準(zhǔn)確度而不必?fù)?dān)心體積忽然降為0.
=========下面是原答案===============
物理學(xué)家測貓法:取一只半徑為r的真空中的球形貓,體積等于4/3*πr^3
數(shù)學(xué)家測貓法:把貓裝進(jìn)已知體積為V的盒子,在盒子內(nèi)均勻取N個隨機(jī)點(diǎn),其中M個在貓體內(nèi),貓體積近似為VM/N。
生物學(xué)家測貓法:把control貓裝盒子,塞了10次都塞進(jìn)去了,把實(shí)驗(yàn)貓裝同一個盒子,塞了10次只進(jìn)去兩次,所以,貓多大我不知道,反正顯著大于control貓。
資料來源于有勇有萌兔(知乎): https://www.zhihu.com/question/36590161/answer/68200338
推薦閱讀
全球100款大數(shù)據(jù)工具匯總(前50款)?
大數(shù)據(jù)時代的10個重大變革
4個最受歡迎的大數(shù)據(jù)可視化工具
大數(shù)據(jù)七大趨勢 第一個趨勢是物聯(lián)網(wǎng)
Q:?各位鏟屎官準(zhǔn)備開始嘗試了嘛?
歡迎留言與大家分享
覺得不錯,請把這篇文章分享給你的朋友
轉(zhuǎn)載 / 投稿請聯(lián)系:qinshi@hzbook.com
更多精彩文章,請?jiān)诠娞柡笈_點(diǎn)擊“歷史文章”查看
總結(jié)
以上是生活随笔為你收集整理的如何优雅地测量一只猫的体积?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Altium Designer之原理图
- 下一篇: 大数据解密之你的同事都跳槽到了哪些公司