值得每个人看的一篇文章——沉没成本和赌徒黑洞理论(Matlab代码实现)

目录

1 沉没成本

1.1 兴趣引入

1.2 沉没成本的概念

2 赌徒黑洞理论

2.1 兴趣引入

2.2 对赌徒黑洞理论的刨析

3 沉没成本模型和数据(Matlab代码实现)

3.1 结果展现

3.2 代码

4  赌徒黑洞理论做的一个小游戏

4.1 代码

4.2 展现

4.3 代码打包带走 


所有文章和电气代码一览无遗电力系统与算法之美(Python&Matlab代码)

这几天经历的事比较多,感触也很多,所以写了这篇文章,与君共勉。 

1 沉没成本

1.1 兴趣引入

2001年诺贝尔经济学奖获得者之一的美国经济学家斯蒂格利茨还用一个生活中的例子来说明什么是沉没成本。他说,“假如你花7美元买了一张电影票,你怀疑这个电影是否值7美元。看了半个小时后,你最担心的事被证实了︰影片糟透了。你应该离开影院吗?在做这个决定时,你应当忽视那7美元。它是沉没成本,无论你离开影院与否,钱都不会再收回。”斯蒂格利茨在这里不但生动地说明了什么是沉没成本,而且还指明了我们对待沉没成本应持怎样的态度。

                    

打开衣柜,相信每个人都会有几件买来就没穿过的衣服挂在架子上,而每次整理衣物,却总是无法下定决心来清理掉它们。房间里堆积着说买来就没用过的物件,我们的理由永远都很站得住脚,「我买它的时候还是很喜欢的」,亦或是「我买的时候花了很多的钱,扔了太可惜了。

追女朋友,一开始投入大量的时间和精力还有金钱,越到后面投入的越多,宁可做一个不折不扣的舔狗,也舍不得分手,其实这和我们接下来一部分要讲的赌徒黑洞理论有异曲同工之妙。爱情世界,一直被沉没成本和赌徒黑洞理论所左右,古今中外皆是如此。

再回想自己等公交的场景,是不是沉没成本。哈哈哈......

 
不难发现,让我们停滞不前或者不愿止损的主要原因,还是自己已经花费了很多金钱以及时就像是投资、炒股或是赌博一样,当我们持有的资产效益下降时,我们仍希望能持有这些资产,以期待之后的翻身,结果往往是自己被套牢,或是在赌局中倾家荡产。


拍卖行与网购网站,就充分利用了这个因素,一个商品,可能被刻意设置成了低价竞标(比如一台iphone,2元钱起拍),这时想必每个人都可以竞标,但是每一次竞拍都需要交给网站1元手续费,另外还有一个条件,就是如果有另一个人用更高的价格竞标,1分钟内无人加价的话,那么这个人就能拍得商品。随着价格的增加,很多人就会变得不那么理智,因为自己之前已经花费了那么多的手续费以及时间,如果竞标失败,等于是自己肉包子打狗,因此即使最后拍卖价格远超商品原价,很多人仍会义无反顾地继续投钱而不是及时止损。


1.2 沉没成本的概念

沉没成本是指已发生或承诺、无法回收的成本支出,如因失误造成的不可收回的投资。沉没成本是一种历史成本,对现有决策而言是不可控成本,不会影响当前行为或未来决策。从这个意义上说,在投资决策时理性的决策者应排除沉没成本的干扰。

                             
从成本的可追溯性来说,沉没成本可以是直接成本,也可能是间接成本。如果沉没成本可追溯到个别产品或部门则属于直接成本;如果由几个产品或部门共同引起则属于间接成本。
从成本的形态看,沉没成本可以是固定成本,也可能是变动成本。企业在撤消某个部门或是停止某种产品生产时,沉没成本中通常既包括机器设备等固定成本,也包括原材料、零部件等变动成本。通常情况下,固定成本比变动成本更容易沉没。


2 赌徒黑洞理论

2.1 兴趣引入

有位大佬总结得而很到位:它就如同一个黑洞,哪怕你只是试探性的靠近一点,也会不由自主的越陷越深加速坠落,只要参透它,你就能参透爱情那血腥的本质。

                       

实在秒啊,生活中,常人很难逃脱这一魔咒。当然,我也不例外(小学作文最喜欢用的开头总算今天也用上了)

美女喜欢渣男的原理这里有一个问题,美女为什么喜欢渣男?在心理逻辑上,我们有一个词叫做「反馈」,也就是说我们眼中所见到的人、事与物,都是一种折射,并在人的大脑中形成「反馈」。


2.2 对赌徒黑洞理论的刨析

「赌徒黑洞」可以拆分两部分来理解,一个是目的,一个是奖励机制。

目的很好理解,就是用对方臆想出来的目标来掩盖真实的目的。当男生踏出了勇敢付出的那一步。这个时候的他希望得到反馈。在反馈并不强烈的时候,反而激起了更多的付出。这样,添狗男就真陷进去了,成为众人眼中的一枚舔狗。

             

第二部分,奖励机制

在我们的理解中,奖励是一种简单的叠加算术题,比如花100元1斤的苹果,花1000元是不是就买了10斤,相信三岁小孩都懂。这折射出一个原理就是,付出越多越渴望得到更多的回报,很多人心里就认定世间常理都遵循这个道理。

这同时也意味着,害怕失去,害怕之前的付出都是毫无意义的。比如只要骗子骗了你第一笔钱,你就会乖乖投入第二笔钱。

再如时下火热的「拆盲盒」或者抓娃娃机,商家为什么能赚钱?是不是大多数人在不知不觉中都付出了超出商品价值的金钱?

他给你的臆想是,让你认为可以拆出个苹果手机,掩盖他实质就是在做生意赚你钱的目的,他又不是做慈善有病啊才会真给你送苹果手机。

  用少数的得到来掩盖大部分抓空的真相。

  她从来不会说我不喜欢你,或者我喜欢你,只会给你感觉她可能喜欢你,而且需要你。


沉没成本模型和数据(Matlab代码实现)

3.1 结果展现

3.2 代码

沉没成本和赌徒黑洞理论(Matlab代码实现)

4  赌徒黑洞理论做的一个小游戏

4.1 代码


// Variables 
var ticketCost = getTicketCost(); 
var rounds = 1; // default to first round 
var money = 0;  // default to no change in money

var isFree = false; 

const numberRounds = 20; // Controls the math portion. Doesn't control html (aka "x / 20 rounds"); 

// Functions: Organized generally in order of call  
function getTicketCost() { // get ticket cost. Changes to test rounds lasted
    var num = (Math.floor(Math.random() * 6)) * 5; // 0, 5, 10, 15, 20, 25
    if (num < 1) { // num is 0 
    	var btnBuy = document.getElementById("buybutton"); 
		btnBuy.style.display="block"; 
		btnBuy.innerHTML = "Get Ticket"; 
		document.getElementById("incrementButton").style.display="none"; 

		document.getElementById("uselessInfo1").innerHTML="There's a free ticket to a game."
		document.getElementById("uselessInfo2").style.display="none"; 

		document.getElementById("ticketCost2").innerHTML = 0; 
    }
    return num; 
} 

function createTicket() { // Setting the proper fields with the ticketCost
	document.getElementById("ticketCost").innerHTML = ticketCost.toString(); 
	document.getElementById("ticketCost2").innerHTML = ticketCost.toString(); 

}

function incrementMoney() {
	var btn = document.getElementById("incrementButton"); 
	money += 1; 
	btn.innerHTML = money.toString(); 
	document.getElementById("moneychange").innerHTML = (money).toString(); 

	var leftPercent = Math.floor(Math.random() * 75);
	var topPercent = Math.floor(Math.random() * 75);

	btn.style.transform = "translate(" + topPercent + "vw, " + leftPercent + "vh)"; 

	if (money === ticketCost) {
		var btnBuy = document.getElementById("buybutton"); 
		btnBuy.style.display="block"; 
		document.getElementById("incrementButton").style.display="none"; 
	}

}

function buyTicket() { // Choosing to buy the ticket, shows next block of text 
	var element1 = document.getElementById("buybutton").style.display='none'; 
	var element2 = document.getElementById("description");
	var trials = document.getElementById("trialInfo"); 
	trials.style.display="block"; 
	unfade(trials); 
	element2.style.display="block";
	unfade(element2);
	money -= ticketCost; 
	document.getElementById("moneychange").innerHTML = (money).toString(); 
}

function begingame() { // begins the game. Sets the first section as visible, hides introduction
	document.getElementById("introsection").style.display="none";
	document.getElementById("firstsection").style.display="block"; 
}

function proceed() { // Proceed to play the game. 
	document.getElementById("hiddenobj").style.opacity=0; // Hides the display of results
	document.getElementById("secondsection").style.display="block"; // Shows second section
	document.getElementById("buttonsdisplay").style.display="none"; // Hides the buttons to proceed / back out
	rng(); // Creates RNG timers
	setTimeout(unfadeElem, 2750); // After the timer
}

function endgame(lastRound) { // Ends the game. 
	if (lastRound || confirm("Back Out?")) {
		// Set what must be seen / not seen 
		document.getElementById("firstsection").style.display="none"; 
		document.getElementById("secondsection").style.display="none"; 
		document.getElementById("infoBox").style.display="none"; 
		// Since rounds is the current round, they lasted rounds - 1 rounds total. 
		rounds -= 1; 
		document.getElementById("lasted").innerHTML = (rounds).toString(); 
		document.getElementById("cost").innerHTML = (ticketCost).toString(); 
		unfade(document.getElementById("lastsection")); 

		// Link to pre populated google form 
		document.getElementById("formLink").href= "https://docs.google.com/forms/d/e/1FAIpQLSdPvo9OQP_-neUyDhT4FV4PJCSItr-jy9lDGsvdtL5Nutn1Og/viewform?entry.1051975222&entry.1130850895=" + ticketCost.toString() + "&entry.571258578=" + rounds + "&entry.1545061294=" + money; 
		// Displayed is the final number of rounds they lasted, or how many times they clicked the 'proceed / play' button. 
	}
}


function rng() { // Sets timers
	var lessThan = 3000; 
	var multiply = 1.2;
	for (i = 1; i < lessThan; i *= multiply) {
		setTimeout(setRandom, i); // Set a timer for a function 
	};
}

function setRandom() { // Set a random number to a section on the screen
	document.getElementById("rng").innerHTML = Math.floor(Math.random()* 11); // 0-10 inclusive
}

function unfadeElem() { // After the timer. 
	if (rounds < numberRounds) { // Normal round 
		var elem = document.getElementById("hiddenobj");
		unfade(elem); // Unfade the result of the rng

		var amount = Number(document.getElementById("rng").innerHTML); // Find the final amount
		if (amount % 2 === 0) { // even - lose 
			money = money - amount; 
			document.getElementById("roundDescription").innerHTML = "The result was even, so you lose $" + amount.toString(); 
		} else { // odd - win
			money = money + amount; 
			document.getElementById("roundDescription").innerHTML = "The result was odd, so you win $" + amount.toString(); 
		}
		reset(); // Reset the trial number and money change
	} else { // rounds === numberRounds. Implies it's the final round possible. 
		var elem = document.getElementById("hiddenobj");
		unfade(elem); // Unfade the result of the rng

		// Unfade the back out and continue buttons, fade in the "finish" button
		document.getElementById("buttonDivNormal").style.display="none"; 
		document.getElementById("buttonDivEnd").style.display="block";

		// Continue as regular
		var amount = Number(document.getElementById("rng").innerHTML); // Find the final amount
		if (amount % 2 === 0) { // even - lose 
			money = money - amount; 
			document.getElementById("roundDescription").innerHTML = "The result was even, so you lose $" + amount.toString(); 
		} else { // odd - win
			money = money + amount; 
			document.getElementById("roundDescription").innerHTML = "The result was odd, so you win $" + amount.toString(); 
		}
		rounds -= 1; // So that instead of setting trial as 21/20, stays at 20/20
		reset(); // Reset the trial number and money change
		rounds += 1; // So set back to 21. 
	}
}

function reset() { // Update information 
	document.getElementById("moneychange").innerHTML = money.toString();
	rounds += 1; // Successfully passed a round
	document.getElementById("trialnumber").innerHTML = rounds.toString(); 
}

function unfade(element) { // For flow. Unfades an element 
    var op = 0.1;  // initial opacity
    var timer = setInterval(function () {
        if (op >= 1){
            clearInterval(timer);
        }
        element.style.opacity = op;
        element.style.filter = 'alpha(opacity=' + op * 100 + ")";
        op += op * 0.1;
    }, 10);
}

4.2 展现

接下来,如果你感兴趣。我把资源打包了。

4.3 代码打包带走 

关注公众号:电力系统与算法之美

回复关键字:沉没成本

致谢

比黑暗森林更恐怖的赌徒黑洞原理:赌徒黑洞 (baidu.com)


 

猜你喜欢

转载自blog.csdn.net/weixin_46039719/article/details/124527474