欢迎光临散文网 会员登陆 & 注册

利用函数公式设计一个数值模型

2020-11-20 15:02 作者:蛋疼的汉子  | 我要投稿

一个游戏,满级 100 级,升级到满级需要 2 年的时间。请利用函数公式设计一个数值模型,该数值模型要求:可以通过调整满级数与满级时间这 2 个参数,自动计算出每级的升级经验以及各级所需的升级天数。


由题意,需设计一系统。该系统输入为满级数x与满级时间y,输出为每级的升级经验z以及各级所需的升级天数k。示意图如下图所示:

图 1 系统示意图

其中,j代表等级。即各级所需升级天数和每级升级经验均为等级j的函数。且由题意,应满足下式:

(1)

且有:

(2)

即各级所需升级天数的和,应等于给定的满级所需要的时间y。

设:

(3)

其中:

(4)

由题意,设x为100(级),y为730(天),也就是两年。取:

(5)

在MATLAB 2018b平台进行仿真,得到仿真结果如下。MATLAB代码见附录四。

 

图 2 升级所需天数对于等级的函数图像

由该模型可得,升第1级所需时间为37.4748秒,升第100级所需时间为66.4078天。

取w正比于z,即满足:

(6)

设比例系数为k,即满足:

(7)

取升第1级时所需经验值为100,代入式(7),解得:

(8)

则有

(9)

在MATLAB平台进行仿真,得到其示意图如下图所示:

图 3 每级升级经验对于等级的函数图像

 解毕。


MATLAB程序如下:

第一幅图(升级所需天数对于等级的函数图像)代码

x = 100;  %满级数

y = 730;  %满级时间,730天,即两年

beta = 1.1;

lamuda = 1.01;

j = 1 : 100;

z = beta.^j - lamuda;

sumz = sum(z);

alpha = 730/sumz;

z = alpha * ( beta.^j - lamuda );

%z = 20 .* log(z + 10) - 45.5;

sum(z)

figure(1);

bar(j,z);

set(gca,'fontsize',26);

xlabel('等级','fontsize',26);

ylabel('升级所需时间/天','fontsize',26);

 

第二幅图(每级升级经验对于等级的函数图像)代码

x = 100;%满级数

y = 730;%满级时间,730天,即两年

ys = 100;%假设升第一级需要经验数为100

beta = 1.1;

lamuda = 1.01;

j = 1 : 100;

z = beta.^j - lamuda;

sumz = sum(z);

alpha = 730/sumz;

z = alpha * ( beta.^j - lamuda );

w = ( ys / z(1) ) .* z;

%z = 20 .* log(z + 10) - 45.5;

sum(z)

figure(1);

bar(j,w,'red');

set(gca,'fontsize',26);

xlabel('等级','fontsize',26);

ylabel('每级升级经验','fontsize',26);

利用函数公式设计一个数值模型的评论 (共 条)

分享到微博请遵守国家法律