文章 二月 10, 2020

干脆面集卡?香吗?

文章字数 2.9k 阅读约需 3 mins. 阅读次数 1000000

今天拿到了康师傅香爆脆送的一箱羊肉串味香爆脆😂
怎么可能是免费的呢,在想🍑
原因是在学校吃了两个月香爆脆集卡成功了(16张)

一箱是三十袋,售价是¥1/袋,整箱的话也没有便宜多少

那么我到底是亏了还是赚了呢?

  • 想法1:答案很显然啊,肯定是亏了,不然香爆脆怎么盈利啊
  • 想法2:不会啊,在学校的时候中再来一包的几率超高再加上“MOKA大法”一元软妹币可以吃到好多包的,收卡不说,吃才是最重要的!

好吧,还是算一下吧
为方便计算,不考虑以下方面

  • 一袋面的生产成本(按成本算不可能赚的)
  • 赠送的一箱里开出的卡(难以估计情况)
  • 买了面不想吃扔了
  • 超市收银员没让刷饭卡
#include <bits/stdc++.h>

using namespace std;

/*
常量
all=16 需要收集的卡的个数
p 再来一包的概率(估计在0.5~0.6)
prz=1 干脆面单袋价格
变量
card 已经收集到的卡的集合
cur 手中现有的干脆面袋数
eat 吃到的干脆面袋数
rmb 花的钱
p1,p2 总金额,总袋数
t 次数
*/

const int all=16,prz=1;
const double p=0.5;
set<int> card;
int cur,eat,rmb;

inline int get_card() {//开的哪张卡
	return rand()*rand()%16;
}

inline bool good() { //中再来一包了吗
	return (rand()*1.0/RAND_MAX)>(1-p);
}

inline void open() {
	++eat;
	if(cur>0) --cur;//开一袋
	else rmb+=prz;//买一袋打开
	if(good()) ++cur;//中了再来一包 
	else card.insert(get_card());//开出来卡 
	return;
}

int main() {
	srand(time(NULL));//设置随机数种子
	int p1=0,p2=0,t=100000;
	for(int i=1; i<=t; ++i) {
		card.clear();
		cur=eat=rmb=0;
		while(card.size()<all) {
			open();
		}
		p1+=rmb,p2+=(eat+30);
	}
	cout<<t<<"次平均:"<<endl;
	cout<<"一袋"<<p1*1.0/p2<<"元"<<endl;
	cout<<"花了"<<p1*1.0/t<<"元"<<endl;
	cout<<"得到"<<p2*1.0/t<<"袋(含集卡兑换的30袋)"<<endl;
	return 0;
}

结果如下

1

感觉还好,四毛一袋
就是垃圾食品吃多了确实不咋地

2

3

4

5

6

7

对于干脆面或者集卡或者干脆面集卡有兴趣的还可以看看下面两篇😉

0%