中午一起吃饭,我出的钱:33块。晚上一起去点了煮串,各自出钱(但最终要算AA),我点了4块,朋友点了11块。然后朋友5块钱买了2个烤面筋分了我一串。我去买了2份小笼包:16块,但是其中一份是朋友带给他家人的。后来朋友又给家人买了一份20块的鸡叉骨。
第一次算账
过程
我寻思算一下总帐,然后AA。
33+4+11+5+16+20=89。
因为其中8块、20块是给朋友家人的,所以
89-28=61。
然后他给我30.5。
总结
感觉算的不对。
第二次算账
过程
把30.5退回去。然后朋友给我转8块钱。是想把不属于AA的部分剔除掉。
33+4+11+5=53。
然后他给我26.5。
总结
还是感觉算的不对。因为我忽略了最重要的一点是钱有时候不都是我出的。所以上面的算法,想算总帐的思路不对,并且又忽略了包子的钱。所以,应该找出一种方法,就算最后少算东西,也不会影响之前算好的结果。
第三次
过程
我开始将每一笔帐,计算对于我的AA结果。+表示我要收到的钱,-表示我要打给朋友的钱。
午饭+16.5,我的串+2,朋友的串-5.5,朋友的面筋-2.5,再+4(小笼包的钱在第2次中朋友已经转给我),鸡叉骨+0。
结果是+14.5。
验证
来验证一下吧,在参与AA的过程中。
我的支出:-33-4-8=-45,最后加上朋友转给我的,-45+14.5=-30.5。
朋友的支出:-11-5=-16,最后加上朋友转向我的,-16-14.5=-30.5。
终于算对了!
思考与总结
这个过程表明,没有考虑到钱有时不总是一个对象支付的,另外一些钱并不应该参与到AA的过程中所以应该及时剔除。
本质还是对AA算法的不明确,不知道(应该是知道但是忽略了)这个算法对于整个系统进行计算时的适用场景应当是钱总由一人出。
其实AA算法更适合对于每一笔钱及时进行AA,这样总不会出问题。即使哪一项账目忽略了,也能再次单独AA。
然后我总结了AA算法的两原则:
原则一:算错了帐,重新算,把错的钱重新转回去。另外不属于AA的钱,不能加到AA过程中(即使你最后尝试剔除)。
原则二:对每一笔账进行AA(划清概念)。
拓展案例
三位旅客到某家旅馆投宿。年轻的柜台接待员给他们一间有三张床的房间,收费30元。他们协议平分住宿费用,每人支付10元之后,便拿了钥匙进房间安置行李。几分钟之后,柜台接待员发现自己弄错了,旅馆这一个礼拜正好有特价促销活动,他应该只收他们25元。为了避免被旅馆经理找麻烦,他立刻从收款机中取出5块钱,并且赶紧上楼去弥补他所犯的过错。在前往旅客房间的路上,他想到5元无法由三个人平分,于是决定退给每位旅客一元,自己留下两块钱。他自认为这是个让每个人都满意的好办法。以下是我们要解决的问题:每位旅客为他们的住宿各付出9元,总计占了原本旅馆收费30元当中的27元,另外两元被接待员拿走,那么30元里的最后一元哪里去了呢?
我的答案
根据AA原则一:
服务员应把现在的30块退回去,之后,每个旅客无法平均这25块钱时,每旅客给了服务员9块,服务员收到27块之后,自己拿了2块钱,然后把25块算做了住宿费。这样岂不是清晰明了?
很好,显然根据AA原则一的处理方法简洁明了。但是很多时候有人就是认死理,不给退,硬是和你讲他想给你讲的,你不认同的逻辑。
根据AA原则二再来处理一下吧。对每一个动作都变更概念。
在服务员拿了5块钱之后,显然住宿费此时变成了25块。在给3位旅客每人发了1块之后,旅客的消费为27块,里面包含了25块的住宿费和2块服务员的小费。所以在这个拓展案例中,“原本旅馆收费30元中的27元”称谓并不对,而应该是“原本旅馆收费30元中的25元”。
所以对的提问应该是:总计占了原本旅馆收费30元当中的25元,另外两元被接待员拿走,那么30元里的最后3元哪里去了呢?
显然你问这个问题旅客会觉得你有一些问题。