Matlab训练5

本文作者分享了参加美赛的经历,强调了找资料和英语能力的重要性。在Matlab编程方面,介绍了位运算在判断奇偶性和优化效率上的作用,以及如何用位运算判断一个数是否为2的幂次方。此外,还简单提及了冒泡排序算法。
摘要由CSDN通过智能技术生成

故事中的主角有很多半途而废的机会,但他们并没有

本周比较特殊,由于我这周参加了美赛所以给大家的博客耽误了一点,所以今天咱们先在这分享以下我第一次美赛的感受和想法。 (干货来了)

  • 学会找资料真的很重要,没有数据的数学建模就是语文建模,空口无凭。找资料的方法有很多种,从娱乐新闻里挖掘,从知网的论文中挖掘,从官方网站寻找(比如国家统计局、税务局、FAO的官网等等等等,只要能找到数据)如果自己学会了python也可以自己爬,然后如果你发现你在国内找不到你需要的数据,尝试科学上网(途径自己去寻找)。比如我这次做美赛,就是有关沙雕的,求什么样的简单三维几何体作为沙堡的地基更耐用以及沙水比为多少时最合适。我们查到的大多数资料都是外网上的,国内研究沙子的好像不多,没有找到太多相关的数据和论文(可能是我太菜了)
  • 英语真的也很重要,这样对论文的写作和英语论文的阅读都有好处。哪怕论文大部分用谷歌翻译完了,但是自己一定要看一遍,因为机翻实在是不太靠谱。
  • 美赛也很重要,所以一定要很重视,毕竟它在我们学校也算A类,拿奖概率相对于国赛也要高一点
  • 。。。其他的我好像也没啥可分享了(就这样吧,还有问题就下方留言解答吧)

好了好了,我们接着上次的来,这次题目不多


Matlab官方帮助文档
1-26
这个题涉及到矩阵的操作,还有一些线性(高等)代数中的名词。常用函数记一下就问题不大

clc;clear;
a=[1:100];
a=reshape(a,10,10)';
disp('a的行列式为:');
det(a)
disp('a矩阵左右翻转后如下:');
b=fliplr(a)
disp('a的逆矩阵为:');
c=inv(a)    %或者A^(-1)
disp('a的特征值和特征向量为:');
[d,e]=eig(a);
d
e=diag(e)
disp('a逆时针旋转270后如下:');
f=rot90(a,3)
disp('a删除第6行和第4行后为:');
i=a; i(6,:)=[]; i(:,4)=[]
disp('a矩阵第7行交换后为:')
j=a; j(7,:)=7

1-27
1-27本身其实很简单,一个奇偶数判断即可(代码如下)。但是——我们来学点小的新知识:位运算

clc;clear;
n=input('请输入一个自然数:');
while n~=1
    if mod(n,2)==0
        n=n/2;
    else
        n=3*n+1;
    end
end
n

我们知道,计算机计算是2进制计算,那么位运算就是直接对整数在内存中的二进制位进行操作,位运算虽然运算优先级较低,但是却算的很快。用位运算判断奇偶比取余判断奇偶大约快4倍(摘自一位博主的结论),在数据量较大时差距很明显,如要判断 1 0 4 10^4 104次甚至更大时。那么,如何用位运算进行操作呢?
奇数如果用二进制表示,那么最低位一定是1。在之前的二进制转换时我们知道,二进制转化为十进制数时,是按照权重计算的,如:(括号内数代表为几进制)
X ( 10 ) = n n n n − 1 . . . . . . n 1 n ( 2 ) = n n ∗ 2 n + n n − 1 ∗ 2 n − 1 + . . . . . . + n 1 ∗ 2 1 + n ∗ 2 0 X_{(10)}=n_nn_{n-1}......n_1n_{(2)}=n_n*2^n+n_{n-1}*2^{n-1}+......+n_1*2^1+n*2^0 X(10)=nnnn1......n1n(2)=nn2n+nn1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值