买卖迷你模拟器
buying and selling mini-simulator
void test(){
double money = 10000;
double price = 0;
int supply = 101;
price = static_cast<double>(100) / supply;
//buying
for (int i = 0; i < 100; i++)
{
price = static_cast<double>(100) / supply;
money -= price;
supply--;
}
//selling
for (int i = 0; i < 100; i++)
{
price = static_cast<double>(100) / supply;
money += price;
supply++;
}
cout << money << endl;
}
上面的代码根据产品的可用性计算产品的价格,然后"购买",减少商品的供应量和客户的钱,每次购买后重新计算商品的价格。当客户决定出售产品时,也会发生类似的过程。这里的亮点是输出:money变量的最后一个值是10099,而不是预期的10000。你会怎么解决这个问题?
问题是,当最后一件物品被购买时,它是以适合N
供应的价格购买的。然后供应减少到N - 1
。第一个要出售的项目然后以适合N - 1
供应的价格出售。把这个问题重复100次,这就解释了你的差异。
如果您希望物品以与购买时相同的价格出售,那么您应该在sell循环中的价格计算之前增加supply
。
相关文章:
- 如何在c++中实现处理器调度模拟器
- 在用于格式4的arm模拟器中实现功能时的一个问题
- 询问在设计我的手臂模拟器功能表示格式1
- 在模拟器中使用并集来模拟CPU寄存器有多合适
- 汽车仪表模拟器
- 键盘模拟器
- 用GTK创建逻辑门模拟器,如何制作放置区域
- 如何在 ns2 模拟器中修改节点的行为?
- opengl 飞行模拟器应用程序中的文本呈现问题
- 使用模拟器C++从RISC-V裸机程序调用printf系统调用时失败
- 具有原生C++库的 Android 免安装应用不会发布到运行 Android N 的设备/模拟器
- 使用 Qt 链接到 iOS 模拟器上的静态库时不兼容的架构
- 彩票模拟器正在返回垃圾价值,而不是用户乐透数字和获胜数字
- Clion Cmake项目不编译:Dyld Mach-O,而是为模拟器构建(不是MacOS)
- Opencv 功能匹配在 iPhone 上中断,但在模拟器上不会中断
- 如何在Android模拟器上显示垫子图像?使用NDK
- 实现简单的逻辑和延迟模拟器
- 如何使用Cmake为SimuroSot模拟器构建(从DevCpp转换)Win32 DLL
- 逗号分隔的数字在模拟器上正确显示,但在iPad上没有显示
- 买卖迷你模拟器