1.endpoints和endpoint有什么区别
2.å¦ä½è¿è¡matlabè¿ä¸ªç¨åº
3.matlab二分法编程
4.Stanford CS106b (2022 winter)Assignment 3 code
endpoints和endpoint有什么区别
Web服务端点(endpoint)是数源Web服务架构中的关键概念,它在服务提供者和客户端之间建立连接的数源接口。在Web服务的数源上下文中,endpoint通常指的数源是用于数据交换的特定URL或接口,如例句1中提到的数源"下一步是进一步使用Web服务端点",意味着开发者会更多地与这些服务交互点打交道。数源工行源码
在更技术的数源层面上,如USB配置描述符中,数源endpoint也有特定的数源描述。例如,数源Endpoint 1 Descriptor定义了数据传输的数源属性,如方向(IN1)、数源类型(Bulk)、数源最大数据包大小(理论最大可达字节,数源但实际应用中可能受限于USB集线器的数源处理方式,单包数据可能被拆分为字节)。createthread源码STM系列支持接收或发送大于字节的数据,但当数据包大于此大小时,会由USB集线器进行拆分,导致endpoint的回调函数被多次调用,每次接收的包大小为字节。
因此,当遇到STM接收大于字节数据包的情况,可能的原因是使用的USB集线器性能不足,导致数据拆分。这是一个值得注意的问题,特别是对于性能需求较高的应用,选择高质量的USB集线器能避免此类问题。
å¦ä½è¿è¡matlabè¿ä¸ªç¨åº
è¦è¿è¡
å½æ°
è¦è¾å ¥åæ°
å¦
å«å¬æ¥¼
ç说
run
å没
åæ°è¾å ¥
æ¥é
f,c1,c2,a,b,c,n,mé½
åæ°
%Input
-
f=u(x,0)
as
a
string
'f'
%
-
c1=u(0,t)
and
c2=u(a,t)
%
-
a
and
b
right
endpoints
of
[0,a]
and
[0,b]
%
-
c
the
constant
in
the
heat
equation
%
-
n
and
m
number
of
grid
points
over
[0,a]
and
[0,b]
%Output
-
U
solution
matrix;
analogous
to
Table
.4
é¢
段
说å
å½æ°
åæ°æä¹
åå½æ°ä½ç¨
èª
æ ¢æ ¢ç 究
å§
matlab二分法编程
这是源代码:在matlab中保存为:bisection.m
function rtn=bisection(fx,xa,xb,n,delta)
% 二分法解方程
% fx是由方程转化的关于x的函数,有fx=0。
% xa 解区间上限
% xb 解区间下限
%解区间人为判断输入
% n 最多循环步数,pvt源码防止死循环。
%delta 为允许误差
x=xa;fa=eval(fx);
x=xb;fb=eval(fx);
disp(' [ n xa xb xc fc ]');
for i=1:n
xc=(xa+xb)/2;x=xc;fc=eval(fx);
X=[i,xa,xb,xc,fc];
disp(X),
if fc*fa<0
xb=xc;
else xa=xc;
end
if (xb-xa)<delta,break,end
end
例子:用二分法求方程x3-x-1=0在区间[1,1.5]内的一个实根,要求两次近似值之间的误差不超过0.。
>>f='x^3-x-1';
>>bisection(f,1,1.5,,^(-3))
[ n xa xb xc fc ]
1. 1. 1. 1. -0.
2. 1. 1. 1. 0.
3. 1. 1. 1. -0.
4. 1. 1. 1. 0.
5. 1. 1. 1. 0.
6. 1. 1. 1. -0.
7. 1. 1. 1. -0.
8. 1. 1. 1. 0.
9. 1. 1. 1. 0.
从结果可以看出,
这个解为:1.
本题的结果如下图:我选的区间为[0,1.5],你可以换个区间,再算出另一个根来(如果有的话)
x=0.
Stanford CSb ( winter)Assignment 3 code
(介绍:斯坦福大学的csb,中文名抽象编程,与国内的数据结构课对标,有C++基础比较轻松,没有也没关系,老师会教。使用的IDE是Qt Creator。课程网址 CSB Home (stanford.edu))
继续分享第三次assignment的代码。事先声明,GoWorld源码本人学术不精,代码虽然都通过了老师的样例,但是可能不够简洁,自己也没有想一些很刁钻的样例去检验,还请多多指教!
第三次作业网址: CSB Recursion! (stanford.edu),
也可以在这里查看 Stanford CSb ( winter)资源存档 - 知乎 (zhihu.com)并下载starter code。
Part One: The Sierpinski Triangle
谢尔宾斯基三角形都不陌生吧
这是一个自相似的图形,第n阶谢三角由三个第n-1阶谢三角叠起来形成。任务就是完成一个递归函数,实现绘制谢氏三角。
已经给你一个基础函数drawTriangle:
以及提示你一个公式:
Some helpful math: the midpoint of a line segment whose endpoints are (x₁, y₁) and (x₂, y₂) is located at position ((x₁ + x₂)/2, (y₁ + y₂)/2). You may find this useful when determining where the corners of the smaller triangles are.
这还不简单?上代码:
看order1的图形,把大三角形三条边的中点坐标列出来即可,顺序不影响结果。注意处理order是idata源码负数的情况。
完成以后可以运行项目,点击Sierpinski Bungee Jump或Interactive Sierpinski 欣赏。
Part Two: Human Pyramids
假设这个人塔里的每个人都是磅,那么显然B\C都承担了磅重量,D呢?
D就承担了一半B的总重量,包括一半B自身的重量(磅)和一半B承担的重量(/2=磅)。以此类推。所以你知道为什么M表情那么痛苦了吧,越靠近中间承担的重量就越大。
Milestone 1: The Initial Implementation
完成一个递归函数:
它将人类金字塔中一个人的行号和列号以及金字塔中的行数(其高度)作为输入,然后返回该人背部的总重量(单位:磅)。(依旧假设一个人磅)
下图是坐标示意图:
那我就给出我推导的公式:
以及第一版代码:(用error()要包含error.h)
Milestone 2: Speeding Things Up
按照上面的算法第三个测试样例是通不过的,因为第三个样例是一个很大的case(层高的金字塔),又要求我们的函数能够在1s内运算完成,这就是这个milestone的任务了:加速!这需要用到memoization技术。
memoization比较难翻译,意思就是把以前计算过的值存起来,以后如果需要做相同的运算就可以直接查这个表而不需要再花费大量时间计算,这体现了以空间换时间的思想。
那我选择用map容器存这些数据,数组的线性查找太慢了。
我的第二版代码(需要加map.h和gridlocation.h):(看着好不简洁,有没有大佬提点意见
顺利通过测试:
我自己想了一些测试样例,也顺利通过。
顺便一提,为什么会出现下图的情况呢:
是因为这里设置了一个showerror函数,把它注释掉即可用第三个样例测试你的代码。
Part Three: What Are YOU Doing?
题意就是说给一句话,这句话里面有n个英语单词,每个单词有可能小写也可能大写,给出所有情况组成的集合。抽象成数学语言就是一个枚举所有子集的问题。如果没有思路,试着think recursively。
会有帮助的函数有toUpperCase,toLowerCase(strlib.h), tokenize ,isalpha(cctype.h)
这道题同样会有大case测试,所以我们需要写运行时间尽可能短的代码(用递归),暴力枚举哒咩!
通过全部测试:
Part Four: Shift Scheduling
(We recommend completing Problem Three before starting on this part of the assignment.)
这上面是你的企业的所有班次,后面紧跟的xx美金表示你的某位员工能在这个班次创造的价值。但是这位员工一周只能工作time小时。现在你的任务是为他排班,让他能为你创造最大的价值同时不超过time小时的工作时限(不是一定要达到time小时)。
需要完成的函数:
Shift是一个结构类型,内含这个班次的起始时间,终止时间,价值。除了上面所说的限制,还有就是你不能给员工安排两个有时间重叠(overlap)的班次(打一次工赚两次钱,好耶)。
提供了一些函数方便你获取关于shift的信息:
可能做完第三题会觉得,那咱把所有可能性列出来再一一比较不就好了吗?×!个班次,将产生2^个不同的排班可能,这怎么处理的过来呀?所以还是要用递归。
上代码:
实不相瞒,我最初使用了跟第三题有点类似的方法:枚举子集,只不过加了筛选条件把那些有冲突的、超时的子集排除了而已(为此还写了个很蠢的Set>)。
谁知道前个点都过了,第个大case还是超时了。毕竟2的次方个可能,就算去掉那些不符合条件的,剩下的还是很多。
直到我返回去再看题目和提示,看到了这样一段话:
就是说递归地去算两条可能的路分别会有多少价值,然后return那个价值大的就好了。就像是ABCD四个终点四条路都走一遍,比较一下每条路会得到多少宝藏,然后从那条路的终点原路返回到起点就行,这样就只会收录一条路,而不用把所有可能的路都收录然后再比较。
顺利通过测试:
总结一下,这次的题明显比上次的难,我的总时长可能接近个小时,难怪教研组建议两人合作完成。不过最后总算是完成了!!!经过2、3两次Assignment,我学到了一些提升递归效率的方法、递归中信息传递的要点,更加能够think recursively,希望我可以继续坚持下去做完全部Assignment!
喜欢这篇题解的话给个三连吧!谢谢!