以下题目是来自微信公众号数学建模清风老师的题目

以下是个人结合在微信公众号上学到的知识去做的,如有不正确或不足之处,欢迎指正!

Q6.最近短视频上有一个有趣的街头抽奖游戏,规则如下:摆摊的店家准备了24个大小相同的玻璃球,其中红黄蓝各8个,装进一个袋子里,在看不见的情况下,玩家从袋子中抓出12个球,然后计算每种颜色球的个数,颜色多的球放在前面。比如5个红色4个蓝色3个黄色,这样就属于543。玩家抓出的12个球的颜色分布情况一定在下表所示的13种情况中。假设参与这个游戏是免费的,如果抽中了相应的情况,店家需要向玩家支付表中第二行所对应的金额。注意,除了543这一种情况玩家要赔给店家30元外,其余的12种情况玩家都是赚钱的,如果你运气好抓到了840这种情况(例如抽出了8个蓝球4个红球),你可以赚300元。请用MATLAB模拟这个游戏并多次运行你的代码,如果你作为玩家参与多次你是赚了还是亏了?你能从理论上解释原因吗?

情况 840 831 822 750 741 732 660
金额 300 200 200 80 60 15 15
情况 751 642 633 552 543 444
金额 10 5 5 5 -30 5

解:我就不详细说了,代码也比较简单,后面有注释。经过多次实验,结果基本上都是543,所以玩家参与多次是亏了的。俺有幸抽到一次831。嘿嘿,有没有人从理论解释,知道的话告诉我一下。

%1~8;9~16,;17~24;
clear,clc
A=randperm(24,12);   %24个随机抽12个
%颜色划分,即1~8为红,9~16为黄,17~24为蓝
for i=1:length(A)if A(i)<9A1(i)=A(i);  %对应颜色为红的数字矩阵elseif A(i)<17&A(i)>8A2(i)=A(i);   %对应颜色为黄的数字矩阵elseA3(i)=A(i);   %对应颜色为蓝的数字矩阵end
end
n1=find(A1>0);    %这里索引的是矩阵大于0的位置
n2=find(A2>0);
n3=find(A3>0);
%各颜色的个数总和,即大于0的位置有多少个
N1=length(n1);
N2=length(n2);
N3=length(n3);
X=horzcat(N1,N2,N3);      %矩阵拼接
sort(X,'descend')         %降序


Q7.层次分析法是数学建模中一个常用的模型,它主要用于解决评价类问题,也可以为评价体系中的指标确定权重。
Q8.在上一小题的基础上,请写出一段代码能够随机生成一个n阶(例如n=5)的判断矩阵,该判断矩阵要满足上一问中的三个特点。

提示:(1)判断矩阵的主对角线元素一定是1,为什么?(2)本章3.5节中我们学会了如何生成一个随机的对称矩阵,一个n阶的对称矩阵中我们只需要生成n*(n-1)/2个随机数,那么本题中这个n阶的判断矩阵中我们要生成多少个随机数?
现在给你一个矩阵A,请判断A是否符合层次分析法中判断矩阵的三个特点。

(7)
解:前面两个特点就不用说了,主要是特点3,对任意的i,j=1,2,...,n,i,j=1,2,...,n,i,j=1,2,...,n,均有aij×ajia_{ij} \times a_{ji}aij​×aji​=1,我们可以换个角度去看,既然对每个i,ji,ji,j,都有aij×ajia_{ij} \times a_{ji}aij​×aji​=1,则这个矩阵有 A.∗A′A.*A'A.∗A′必须是一个全为1的矩阵,所以我们只要判断A.∗A′A.*A'A.∗A′这个矩阵里的所以元素都是1即可。

function Tt=T(A)
[m,n]=size(A);
k=sum(A.*A');
for i=1:mfor j=1:nif m~=n   %判断特点1disp('输入的矩阵不是方阵,不满足特点1')breakelseif A(i,j)>9|A(i,j)<1/10   %判断特点2disp('不满足特点2')breakelseif sum(k)==m^2   %判断特点3disp('输入的矩阵是符合所有特点的')elsedisp('输入的矩阵不满足特点3')endend
end

大家可以在命令窗口执行以下矩阵:

clear,clc
A=[1 2 3;4 5 6;7 8 9];
B=[1 2 11;1/12 6 5;4 7 8];
C=[1 2 3;1/2 1 2;1/3 1/2 1];
T(A)
T(B)
T(C)

(8)
解:这个和第7题类似,可以参考本章3.5节

但是不同的是:处于对称位置的元素是倒数,至于为什么对角线必须全为1,是因为对任意的i,j=1,2,...,n,i,j=1,2,...,n,i,j=1,2,...,n,均有aij×ajia_{ij} \times a_{ji}aij​×aji​=1。以下代码有一个细节,就是C、H、G这里是为了使G不出现nannannan或infinfinf ,即分母有效(不能为0)。代码中先取去上三角或下三角都可以,即triu与tril是可以互换的。

clear,clc
n=5;
num=n*(n-1)/2;
A=zeros(n);
A(triu(true(n),1))=randi([1,9],num,1);
B=A';
C=triu(ones(n));   %上三角全为1
H=B+C;
G=1./H;          %取倒数
K=tril(G,-1);      %下三角元素
W=A+K+diag(diag(ones(n)))
W.*W'       %验证是否全为1矩阵W =1.0000    4.0000    7.0000    9.0000    7.00000.2500    1.0000    4.0000    5.0000    9.00000.1429    0.2500    1.0000    4.0000    4.00000.1111    0.2000    0.2500    1.0000    9.00000.1429    0.1111    0.2500    0.1111    1.0000ans =1     1     1     1     11     1     1     1     11     1     1     1     11     1     1     1     11     1     1     1     1

这说明是满足要求的。也可以把矩阵w代入(7)中去验证。

Q9.生成100个随机的点,这些点都位于单位圆内:。注意,要求MATLAB输出的x和y都是长度为100的向量,分别表示这100个点的横纵坐标。

提示:我们可以借助圆的极坐标公式来生成随机数。下方我为大家准备了一个图形可视化的代码,大家将自己生成随机数的核心代码放入答题区域内,然后运行整段程序,就会出现类似于右侧的图形。如果你的点都位于单位圆内,则说明你的答案正确。

解:利用极坐标的知识,注意的是角度随机,极径也随机。

clear,clc
t=0:0.01:2*pi;
xx=cos(t);
yy=sin(t);
plot(xx,yy,'r')
hold on
axis equal
axis([-1 1 -1 1])
k=2*pi*rand(1,100);
p=rand(1,100);          %利用圆的极坐标
x=p.*cos(k);
y=p.*sin(k);
scatter(x,y,'b*')

效果如下:

Q10.和上一题的思路类似,请生成100个随机的点,这些点都位于圆内。其中,圆心的坐标为(10,4),半径为10。

解:根据上面改动一下圆心和半径就可以了。

clear,clc
t=0:0.01:2*pi;
xx=10+10*cos(t);
yy=4+10*sin(t);
plot(xx,yy,'r')
hold on
axis equal
axis([-1 1 -1 1])
k=2*pi*rand(1,100);
p=rand(1,100);          %利用圆的极坐标
x=10+10*p.*cos(k);
y=4+10*p.*sin(k);
scatter(x,y,'b*')

效果如下:

数学建模清风微信公众号的习题答案(挑战篇2)相关推荐

  1. 数学建模清风微信公众号的习题答案(挑战篇-完结)

    以下题目是来自微信公众号数学建模清风老师的题目 以下是本人结合在微信公众号上学到的知识去做的,如有不正确或不足,欢迎指正! Q15.在本章3.3.5小节介绍sort函数时,我们留下了一个问题:如果存在 ...

  2. 数学建模清风微信公众号的习题答案(挑战篇-数据异常值处理)

    以下题目是来自微信公众数学建模清风老师的题目 1.0数据异常处理 1.1正态分布的3σ\sigmaσ原则 1.2箱线图识别异常值 2.0 数据异常处理实例 3.0 总结分析 以下是个人结合在微信公众号 ...

  3. 数学建模清风微信公众号的习题答案(挑战篇-蒙特卡罗思想、枚举法和网格搜索法)

    以下题目来自微信公众数学建模清风老师的题目 蒙特卡罗模拟计算π\piπ 蒙特卡罗模拟求定积分 蒙特卡罗模拟计算概率 枚举法与网格搜索法 以下是个人结合在微信公众号是所学到的知识取做的,如有不正确或不足 ...

  4. 数学建模清风微信公众号的习题答案(挑战篇1)

    以下题目是来自微信公众号数学建模清风老师的题目 以下是个人结合在微信公众号上学到的知识去做的,若有不正确或不足之处,欢迎指正! Q1.A是一个矩阵,A(:)可以按照列方向的顺序(线性索引)将A中每个元 ...

  5. 数学建模清风微信公众号的习题答案(提高篇2)

    以下题目是来自微信公众号数学建模清风老师的题目 以下是个人结合在微信公众号上学到的知识去做的,若有不正确或不足,欢迎指正! Q11.怎样将一个方阵A的主对角线元素重新赋值为0.例如: 解:这个主要考察 ...

  6. 数学建模清风微信公众号的习题答案(基础篇-填空题)

    以下题目是来自微信公众号数学建模清风老师的题目 如有不正确或不足的地方,欢迎指正! Q1.填空题 (1) MATLAB中矩阵的元素应包括在方括号括号中,矩阵的同行元素之间由(,)分隔,行与行之间用(; ...

  7. 微信公众号开发入门教程第一篇

    微信公众号开发入门教程第一篇 关键字:微信公众平台开发 作者:方倍工作室 在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/ ...

  8. php早起打卡,微信公众号早起打卡挑战应用制作教程

    原标题:微信公众号早起打卡挑战应用制作教程 最近有很多公众号都推送了"早起打卡挑战"应用,粉丝可支付一定的金额参与早起打卡,若次日打卡则可获得支付金额+奖励金额,若忘记打卡则会被扣 ...

  9. 微信公众号排版多少钱一篇?

    公众号运营可以拆解为文章撰写和图文排版,公众号推文可以整体来做,也可以拆开来做,当你写好公众号文章以后,再找专业的人士进行排版美化. 微信公众号排版多少钱一篇?今天伯乐网络传媒就来给大家聊聊这个话题. ...

最新文章

  1. ORA-12012: error on auto execute of job quot;ORACLE_OCM
  2. C语言程序设计之回调函数实现方法
  3. 试题 基础练习 特殊的数字
  4. php连接mongoDB的几个问题
  5. boost学习之BOOST_PP_SEQ_FOR_EACH_R
  6. Linux操作系统下信号处理函数
  7. angularjs 实例_AngularJS过滤器示例教程
  8. git回退到历史版本并提交到远程分支
  9. hadoop大数据概述
  10. Excel2013向被粘贴区域的非空单元格内粘贴数据
  11. 机器人建模中移动关节如何建立坐标系_简述空间机器人运动学和动力学建模
  12. 义隆循环左移c语言,二进制除法运算(义隆单片机)
  13. 解读:学习网络安全自学好还是报培训班好
  14. 计算机网络原理【第四章 网络层】课后习题答案
  15. 老九学堂 学习 C++ 第七、八天
  16. 教你快速给多段视频添加同一个片尾和转场特效
  17. JPG图片怎么转换成Word
  18. IP 基础知识“全家桶”,45 张图一套带走
  19. [usaco 2009 dec]游荡的奶牛
  20. 安装homebrew cask报错问题

热门文章

  1. 后疫情时代更多知识竞赛活动将在云端进行
  2. 项目重点、技术实现、实现过程中遇到的问题总结
  3. Apache Tomcat 8.5安装配置教程
  4. 一、QChart-barchart柱状图
  5. STM32F429入门(十五):EXTI
  6. Windows优化大师注册机源码
  7. c语言编求二重积分_c语言实现二重积分
  8. 重磅!IDC、Forrester、Gartner等6大权威机构2023年数字化趋势预测集锦
  9. mapgis中6.7属性结构_【技术】这世界的完美,原本一直在我们眼前 ——MapGIS打造全空间GIS平台...
  10. uni-app 使用 webview运行到小程序,打开萤石云视频