当前位置: 首页 > 编程日记 > 正文

看不懂的生成函数

不得不说这个东西真是妙啊

遭到了降智打击

生成函数又叫做母函数,主要用于解决一些组合数学问题

对于一个数列\(\{f_0,f_1,f_2,...,f_n\}\)

我们定义其生成函数为

\[F(x)=f_0+f_1x+f_2x^2+...+f_nx^n\]

也就是

\[F(x)=\sum_{i=0}^nf_ix^i\]

也就是把数列的每一项当成了多项式对应项的系数

$$$$

既然是函数,那么我们就可以去计算对应的函数值

比如一个数列

\[\{1,1,1,1,1,1...\}\]

它的生成函数

\[F(x)=1+x+x^2+x^3+...\]

发现这是一个无穷等比数列

于是

\[F(x)=\frac{1-x^n}{1-x}\]

对于\(x\in (-1,1)\),当\(n\)趋于无穷的时候,\(x^n=0\)

于是

\[F(x)=\frac{1}{1-x}\]

对于一些特殊的数列,比如说

\[\{1,0,1,0,1,0,1,0,1...\}\]

也就是\(mod\ 2=0\)的项为\(1\),其余项为\(0\)

也就是

\[F(x)=x+x^2+x^4+...\]

简单换一下元,就会发现\(F(x)=\frac{1}{1-x^2}\)

于是我们可以发现生成函数

\[F(x)=\frac{1}{1-x^k}\]

对应的数列是一个\(k\)的倍数项为\(1\),其余项为\(0\)的数列

$$$$

这样看也没什么用啊,怎么能跟组合计数有关系呢

我们都学过多项式,我们知道我们可以用多项式的系数来表示方案数

我们来考虑一个最简单多项式

\[A=1+x+x^2+x^3+...\]

\(A\)的第\(i\)项可以表示选取\(i\)个物品的方案数

写成生成函数\(F(x)=\frac{1}{1-x}\)

那么\(A^k\)就表示从\(A\)中进行\(k\)次选取的方案数,第\(i\)项就是选出\(i\)个物品的方案数

那么这个生成函数相乘表示什么呢

\[F^k(x)=\frac{1}{(1-x)^k}\]

\[A^k=\sum_{i=0}\binom{i-1+k}{k-1}x^i\]

这就是一个组合数插板就得出来了

根据我不知道的广义二项式定理,上面的式子是相等的

于是我们得出一个重要结论

多项式的卷积对应的就是两个生成函数的乘积

$$$$

之后我们真的可以来做一道题了

LGP2000

先把所有的限制条件变成多项式和生成函数

  1. 必须是6的倍数,那么就是\(F(x)=\frac{1}{1-x^6}\)

  2. 最多用\(9\)块,也就是一个只有前\(10\)项系数为\(1\)的多项式,一个等比数列求和,\(F(x)=\frac{1-x^{10}}{1-x}\)

  3. 最多用5块,\(F(x)=\frac{1-x^{6}}{1-x}\)

  4. 必须是4的倍数,\(F(x)=\frac{1}{1-x^4}\)

剩下的就不写了,就是把每一个条件都抽象成生成函数,之后对这些个生成函数求一个乘积,发现是\(F(x)=\frac{1}{(1-x)^5}\)

我们把这个转化成多项式

\[\sum_{i=0}\binom{i-1+5}{5-1}x^i\]

我们要的是第\(n\)项系数,也就是\(\binom{n+4}{4}\)这就是答案了

$$$$

生成函数更神仙的地方就在于推通项了

比如说\(fib\)数列

\[fib_n=\begin{cases}1&n\leq2\\fib_{n-1}+fib_{n-2}&n>2\end{cases}\]

其生成函数为

\[\begin{aligned} F(x)=&\sum_{i=1}fib_ix^i\\&=\sum_{i=1}(fib_{i-1}+fib_{i-2}+[i=1])x^i\\&=\sum_{i=1}fib_{i-1}x^i+\sum_{i=1}fib_{i-2}x^i+x\\&=x\sum_{i=1}fib_{i-1}x^{i-1}+x^2\sum_{i=1}fib_{i-2}x^{i-2}+x\\\end{aligned}\]

发现这个\(\sum_{i=1}fib_{i-1}x^{i-1}\)\(\sum_{i=1}fib_{i-2}x^{i-2}\)不都是\(F(x)\)

于是就有

\[F(x)=xF(x)+x^2F(x)+x\]

于是我们可以求得

\[F(x)=\frac{x}{1-x-x^2}\]

这就是\(fib\)数列的生成函数了

但是这有什么用呢

可以求通项啊

我们把分母上的\(1-x-x^2\)因式分解一下

\[F(x)=\frac{x}{(1-\frac{1-\sqrt5}{2}x)(1-\frac{1+\sqrt5}{2}x)}\]

在搞一搞

\[F(x)=-\frac{1}{\sqrt5}\frac{1}{(1-\frac{1-\sqrt5}{2}x)} + \frac{1}{\sqrt5}\frac{1}{(1-\frac{1+\sqrt5}{2}x)}\]

发现出现了诸如\(\frac{1}{1-cx}\)这样的生成函数

我们知道这样的生成函数对应的多项式应该形如\(\sum_{i=1}c^ix^i\)

所以就会有

\[fib_n=-\frac{1}{\sqrt5}(\frac{1-\sqrt5}{2})^n+\frac{1}{\sqrt5}(\frac{1+\sqrt5}{2})^n\]

真是优雅自然

我们再来推一个难一点的数列,卡特兰数

卡特兰有一个递推式是这个样子的

\[f_n=\begin{cases}1&n=0\\\sum_{i=0}^{n-1}f_if_{n-i-1}&n>0\end{cases}\]

我们照样来推一下

\[\begin{aligned} F(x)&=\sum_{i=0}(\sum_{j=0}^{i-1}f_jf_{i-j-1}+[i=0])x^i\\&=1+\sum_{i=1}(\sum_{j=0}^{i-1}f_jf_{i-j-1})x^i\\&=1+x\sum_{i=1}(\sum_{j=0}^{i-1}f_jf_{i-j-1})x^{i-1}\end{aligned}\]

考虑把\(x^{i-1}\)分成\(x^{j}\times x^{i-j-1}\),之后分进去

就是

\[\begin{aligned} F(x)&=1+x\sum_{i=1}\sum_{j=0}^{i-1}f_jx^j\times f_{i-j-1}x^{i-j-1}\end{aligned}\]

惊奇的发现\(f_jx^j\)是对应多项式的\(j\)次项,\(f_{i-j-1}x^{i-j-1}\)是对应多项式的\(i-j-1\)次项,于是内部还是一个卷积的形式也就是卡特兰数自己卷自己,就是\(F^2(x)\)

于是

\[F(x)=1+xF^2(x)\]

这不是一元二次方程吗,解一下这个方程

发现

\[F(x)=\frac{1\pm \sqrt{1-4x}}{2x}\]

发现竟然有一个正负号的问题

分式方程不好解我们上整式方程

\(k=\frac{1\pm \sqrt{1-4x}}{2x}\)

\[2xk\pm \sqrt{1-4x}=1\]

尽管生成函数的\(x\)没有什么意义,但是我们带入\(x=0\)的时候,\(F(0)=f_0\),这是非常显然的

于是

\[2\times 0\times 0\pm1=0\]

显然那个符号应该是正,由于这是移项过来的,于是在那边应该是个负号,所以

\[F(x)=\frac{1-\sqrt{1-4x}}{2x}\]

这个东西有什么用呢,可以搞卡特兰数的通项!

我们发现那个\(\sqrt{1-4x}\)就是\((1-4x)^{\frac{1}{2}}\),尝试二项式定理

\[(1-4x)^{\frac{1}{2}}=\sum_{i=0}\binom{\frac{1}{2}}{i}(-4x)^i\]

推不动了,先弃疗了

$$$$

来一道神仙题

[TJOI2015]概率论

感性理解一下这个\(n\)个节点的二叉树同构的数量就是\(f_n\),卡特兰数

现在的问题就是求一个分子,就是所有\(n\)个节点的二叉树的同构的叶子节点的个数

我们设为\(h_n\)

答案就是\(\frac{h_n}{f_n}\)

我们考虑一下\(h_n\)如何求

显然我们可以利用一个类似卡特兰的转移

\[h_i=\sum_{i=0}^{j-1}h_jf_{i-j-1}+h_{i-j-1}f_j\]

就是枚举左右儿子的节点个数,之后由于要和另一个儿子组合,于是得乘上方案数

于是现在可以去写一个\(O(n^2)\)的了

    f[0]=1,f[1]=1;for(re int i=2;i<=n;i++)for(re int j=0;j<i;j++) f[i]+=f[j]*f[i-j-1];h[0]=0,h[1]=1;for(re int i=2;i<=n;i++)for(re int j=0;j<i;j++) h[i]+=f[i-j-1]*h[j]+f[j]*h[i-j-1];printf("%.12lf",double(h[n])/double(f[n]));

考虑到这个形式我们并不是很好化简,于是考虑到\(f_jh_{i-j-1}\)会被算到两次

于是直接写成

\[h_i=2\sum_{i=0}^{j-1}h_jf_{i-j-1}\]

我们得特殊定义一下\(h_1=1\)

考虑求这个函数的生成函数

\[\begin{aligned}F(x)=&\sum_{i=1}(2\sum_{j=0}^{i-1}h_jf_{i-j-1}+[i=1])x^i\\&=x+\sum_{i=1}(2\sum_{j=0}^{i-1}h_jf_{i-j-1})x^i\\&=x+x\sum_{i=1}(2\sum_{j=0}^{i-1}h_jf_{i-j-1})x^{i-1}\\&=x+x\sum_{i=1}2\sum_{j=0}^{i-1}h_jx_j\times f_{i-j-1}x^{i-j-1}\end{aligned}\]

\(G(x)=\sum_{i=0}f_ix^i\)

于是

\[\begin{aligned}F(x)=&x+2xF(x)G(x)\end{aligned}\]

我们知道\(G(x)=\frac{1-\sqrt{1-4x}}{2x}\)

于是我们可以解得

\[F(x)=\frac{x}{\sqrt{1-4x}}\]

之后我就又不会做了,愉快地去看题解,发现果真还是菜啊

并不会求导,于是只能复述一下题解

\(xG(x)\)求导,发现

\[(xG(x))'=\frac{1}{\sqrt{1-4x}}=\frac{F(x)}{x}\]

据说\(xG(x)\)求导之后每一项从\(f_ix^{i+1}\)变成了\((i+1)f_ix^i\)

就等于对应的\(\frac{F(x)}{x}\)的每一项\(h_ix^{i-1}\),也就是\(h_{i+1}x^i\)

也就是说我们得到了

\[h_{i+1}x^{i}=(i+1)f_ix^i\]

就是

\[h_{i+1}=(i+1)f_i\]

所以\(h_i=if_{i-1}\)

之后我们的答案就是

\[\frac{nf_{n-1}}{f_n}\]

我们利用卡特兰数的通项公式\(f_n=\frac{1}{n+1}\binom{2n}{n}\)

于是

\[\begin{aligned}\frac{nf_{n-1}}{f_n}&=\frac{n\frac{1}{n}\binom{2n-2}{n-1}}{\frac{1}{n+1}\binom{2n}{n}}\\&=\frac{(n+1)\frac{(2n-2)!}{(n-1)!(n-1)!}}{\frac{(2n)!}{n!n!}}\\&=\frac{(2n-2)!n!n!(n+1)}{(2n)!(n-1)!(n-1)!}\\&=\frac{n^2(n+1)}{2n(2n-1)}=\frac{n(n+1)}{2(2n-1)}\end{aligned}\]

于是一行就写完了

#include<cstdio>
int main() {double n;scanf("%lf",&n);printf("%.12lf\n",n*(n+1)/2/(2*n-1));}

这道题没能推出通项不是很得劲,[国家集训队]整数的lqp拆分可以用生成函数推出通项来

我又来写概率生成函数

感觉这个东西很玄幻啊

对于一个取值范围为非负整数的离散随机变量\(X\),我们定义其概率生成函数\(F(x)\)

\[F(x)=\sum_{i=0}^{\infty}P(X=i)x^i\]

也就是第\(i\)项的系数就是这个离散变量取到\(i\)的概率

于是就有两个非常显然的性质

我们令\(x=1\)

\[F(1)=\sum_{i=0}^{\infty}P(X=i)=1\]

另一个性质,我们求一下导

\[F'(x)=\sum_{i=1}^{\infty}iP(X=i)x^{i-1}\]

继续带入\(x=1\)

惊奇的发现\(E(X)=F'(1)\),因为\(iP(X=i)\)这样累加起来显然就是期望值了

来看一道经典的例题[CTSC2006]歌唱王国

我们定义\(f_i\)表示这个字符串在第\(i\)项结束的概率,我们再定义\(g_i\)表示到了第\(i\)项还没有结束的概率,\(F(x),G(x)\)分别为这两个序列的概率生成函数

显然存在一条性质\(g_{i-1}=f_{i}+g_{i}\),就是在\(i-1\)还没有结束的概率就等于\(i\)点结束或者不结束的概率之和

我们用下一个点结束或者不结束的概率之和

我们用生成函数来写这个柿子就是

\[1+xG(x)=G(x)+F(x)\]

求一个导,右边是\(G'(x)+F'(x)\)

左边的常数项求导玩就没了,于是对\(xG(x)\)求导

\[(xG(x))'=\sum_{i=0}^{\infty}(i+1)g_ix^{i+1-1}=\sum_{i=0}^{\infty}g_ix^i+\sum_{i=0}^{\infty}ig_ix^{i-1+1}=G(x)+xG'(x)\]

于是

\[G'(x)+F'(x)=G(x)+xG'(x)\]

\(x=1\)时就有\(F'(x)=G(x)=E(x)\)

于是我们只需要求一个\(G(x)\)就好了

之后就会这样一个柿子

\[G(x)(\frac{1}{m}x)^L=\sum_{i=1}^La_iF(x)(\frac{1}{m}x)^{L-i}\]

其中\(a_i\)表示\(i\)前缀是否是一个\(boder\)

看起来有点吓人啊,但是我们可以这样来理解

\(G(x)\)显然是对应了一个还没有结束的任意字符串,我们在后面补上一个原串,得到一个长度增加了\(L\)的新串,显然这个新串是一定可以结束的,得到这样一个新串的概率显然就是\(G(x)\times \frac{1}{m^L}\)

由于我们强行补上这个新串,这个时候游戏一定结束了,但是很有可能游戏在这之前就已经结束了

我们考虑一下如果当前已经添加了\(i\)个字符游戏结束的情况,显然这\(i\)字符既是原串的前缀也是原串的一个后缀,也就是我们经常说的\(boder\)

于是如果\(i\)是一个\(boder\)的话,我们得来的这个字符串就相当于在长度增加了\(i\)的时候已经结束的了一个字符串又钦定了\(L-i\)个字符

这样就得到了上面的柿子

我们代入\(x=1\)试试看,发现

\[G(1)=\sum_{i=1}^La_im^i\]

我们要求的是啥来着,不就是\(E(x)=G(1)\)吗,于是我们现在直接\(O(L)\)的时间算出\(G(1)\)就好了

代码

#include<cstdio>
#define re register
const int maxn=1e5+5;
const int mod=10000;
int T,pw[maxn],ans,a[maxn],nx[maxn],m,n;
int main() {scanf("%d%d",&m,&T);pw[0]=1;for(re int i=1;i<maxn;i++) pw[i]=1ll*pw[i-1]*m%mod;while(T--) {scanf("%d",&n);ans=0;for(re int i=1;i<=n;i++) scanf("%d",&a[i]);for(re int i=2;i<=n;i++) {nx[i]=0;int p=nx[i-1];while(p&&a[i]!=a[p+1]) p=nx[p];nx[i]=p+(a[i]==a[p+1]);}while(n) ans=(ans+pw[n])%mod,n=nx[n];if(ans<1000) putchar('0');if(ans<100) putchar('0');if(ans<10) putchar('0');printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/asuldb/p/10533453.html

相关文章:

Coolite Toolkit学习笔记五:常用控件Menu和MenuPanel

Coolite Toolkit里的Menu控件和其他的.NET Web控件不一样&#xff0c;如果只是设计好了Menu或是通过程序初始化菜单项&#xff0c;菜单是不会呈现在界面上的&#xff0c;因为Coolite Toolkit规定Menu控件需要一个容器来做依托&#xff0c;而这个让Menu依托的控件就是MenuPanel&…

解决Neither the JAVA_HOME nor the JRE_HOME environment variable is defined问题

问题描述&#xff1a; 在cmd窗口使用 startup 命令启动Tomcat时&#xff0c;出现 Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program 错误提示&#xff0c;如下如所示。 解…

在 Windows XP 中,无法使用 Windows 图片和传真查看器来查看图片

在 Microsoft Windows XP 中试图使用 Windows 图片和传真查看器查看图片时&#xff0c;图片未按预期显示。不过&#xff0c;当使用 Microsoft 画图工具查看图片时&#xff0c;图片会按预期显示。注意&#xff1a;Windows 资源管理器中可能不会显示某些图片缩略图。 发生这种现象…

前端常用正则表达式

前端常用的正则表达式 通过一些例子来学习正则表达式摘录&#xff0c;js正则函数match、exec、test、search、replace、split //去除首尾的‘/’input input.replace(/^\/*|\/*$/g,);javascript:; 、javascript:void(0)javascript:;.match(/^(javascript\s*\:|#)/);//["j…

BeanShell使用json.jar包处理Json数据

环境准备 ①Jmeter版本 &#xff0c;JDK ②前置条件&#xff1a;将json.jar包置于..\lib\下&#xff0c; 如果还是报错&#xff0c;可以将该jar包添加到测试计划的Library中&#xff1b;否则会报&#xff1a;Typed variable declaration : Class: JSONObject not found in nam…

ES6 let和const 命令

ES6 let 和 const 命令1. 变量声明2. 变量提升问题3. 暂时性死区(TDZ)4. 块级作用域4.1 为什么需要块级作用域&#xff1f;4.2 ES6的块级作用域4.3 块级作用域和函数声明1. 变量声明 ES5 只有两种声明变量的方法&#xff1a;var命令和function命令。 ES6 新增了let命令和cons…

jQuery的Tab插件 Tabtastic

Tabtastic 是一个 jQuery 用来实现 Tab 窗体的插件&#xff0c;支持 Tab 嵌套以及动态内容加载。 下面是源文件下载&#xff1a;Tabtastic转载于:https://www.cnblogs.com/zhulidong/archive/2009/11/01/1593753.html

另类×××应用(三):不花一分钱,实现总部和多分支机构网络互联

[本文高清PDF版&#xff0c;在文章最后的附件提供下载&#xff0c;欢迎下载查阅] 【需求分析】&#xff08;一&#xff09;我们面临的问题。Freesky公司是一家在台湾和大陆都有很多分支机构的大饼油条连锁经销商&#xff0c;大陆总部在宁波&#xff0c;在宁波、温州、上…

[SDOI2017]天才黑客

传送门 Description 给出一张带边权的有向图&#xff0c;每个边都上都有一个字符串&#xff08;给出对应Trie树上的节点&#xff09;&#xff0c;一条路径的长度为路径上的边权之和相邻两条边的字符串的lcp长度之和。 求从1到其它节点的最短路 Solution 预备部分 首先&#…

spine - unity3D(摘自博主softimagewht)

摘自&#xff1a;&#xff08;博主 http://www.cnblogs.com/softimagewht/p/4149118.html&#xff09; //skeletonDataSkeletonAnimation skeletonAnimation GetComponent<SkeletonAnimation>();Debug.Log(skeletonAnimation.name);//获取角色名Debug.Log(skeletonAnima…

Windows搜索工具 — Everything

everything 主页 &#xff1a;https://www.voidtools.com/zh-cn/ Everything&#xff1a;是 Windows 上一款搜索引擎&#xff0c;它能够基于文件名快速定文件和文件夹位置。 下载链接&#xff1a;https://www.voidtools.com/zh-cn/downloads/ —— END ——

向访客和爬虫显示不同的内容

为了提高网页的用户体验, 我们经常会做一些对搜索引擎不太友好的事情, 但某些情况下这并不是无法挽回的, 可以通过向自然人和搜索引擎机器人显示不同的内容来提供好的用户体验和 SEO. 听说本方法会触犯搜索引擎的一些操作原则, 有可能被被各搜索引擎处罚, 甚至删除网站. 所以我…

php取url后的文件名

<? $a"http://www.esyu.com.cn/images/aaa.gif"; echo substr($a,strrpos($a,"/")1); ?>

ES6 函数的扩展

ES6 函数的扩展1. 函数参数的默认值1.1 基本用法1.2 与解构赋值默认值结合使用1.3 参数默认值的位置1.4 函数的length属性2. rest参数2.1 rest参数2.2 arguments对象3. 函数的name属性4. 箭头函数1. 函数参数的默认值 1.1 基本用法 ES6之前&#xff0c;不能直接为函数的参数指…

Mycat分片规则详解

1、分片枚举 通过在配置文件中配置可能的枚举 id&#xff0c;自己配置分片&#xff0c;本规则适用于特定的场景&#xff0c;比如有些业务需要按照省份或区县来做保存&#xff0c;而全国省份区县固定的&#xff0c;这类业务使用本条规则&#xff0c;配置如下&#xff1a; <ta…

COGS 2769. mk去撸串

【题目描述】 今天 mk 去撸串 ,恰逢店里活动 ,如果吃一种串串超过记录, 可以 赠送 328, 所以 mk 想知道他吃的串串中吃的最多的种类是什么. 【输入格式】 第一行一个整数 1<n<50000; 然后有 n 行长度<100 的全部由小写字母组成的字符串;每个代表一种串串 【输出格式】…

C# 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie

由于种种原因&#xff0c;我们有时需要从互联网上抓取一些资料&#xff0c;有些页面可以直接打开&#xff0c;而有些页面必登录之后才能打开。本文介绍的是使用 HttpWebRequest 和 HttpWebResponse 自动填写提交 ASP.NET 表单并保持 Session 和 Cookie 的一个完整的例子。这里涉…

rman备份后为什么要同时备份归档日志

今天在CU上看到有人问一个问题&#xff1a;rman备份后为什么要同时备份归档日志呢&#xff0c;既然rman是物理备份&#xff0c;所有数据已经都备份&#xff0c;再次备份归档日志何用&#xff1f;思考了一下&#xff0c;认为有必要记录一下为什么要备份归档日志&#xff1a;其实…

Angular响应式表单及表单验证

1. 什么是响应式表单&#xff1f; 响应式表单提供了一种模型驱动的方式来处理表单输入&#xff0c;其中的值会随时间而变化。 响应式表单使用显示的&#xff0c;不可变的方式&#xff0c;管理表单在特定时间点上的状态。对表单状态的每一次变更都会返回一个新的状态&#xff…

void *指针的加减运算

1、手工写了一个程序验证void *指针加减运算移动几个字节&#xff1a; //本程序验证空类型指针减1移动几个字节 #include <stdio.h> int main(int argc, char *argv[]) {int a10,b20;int *pa&a;void …

ASP.NET运行原理

一个ASP.NET的应用程序是开始于IIS的. 当你请求一个包含ASP.NET应用的网址时,IIS接受到请求(IIS是WEB服务守候进程),IIS收到请求后,会根据请求者请求的主机头或者IP或者端口号来找到对应的站点. 当找到站点后,如果你请求的资源是以ASPX为结尾的WEBFORM,时,IIS会将控制权交给一…

vue 树形下拉框 亲测 好用

https://vue-treeselect.js.org/ 顺带说一个开发中使用这个组件遇到的问题&#xff0c;关于回显之后无法修改的问题 找了很长时间 原因是数据类型导致的问题&#xff0c;数组里面应该是数字类型&#xff0c;直接转数组的话里面的值都是字符串&#xff0c;所有得额外做处理了转…

通过xmanager远程连接redhat linux as 5

通过xmanager远程连接redhat linux as 5 <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />rhel5与rhel4不同的地方是&#xff0c;rhel5里没有/etc/X11/gdm/这个目录&#xff0c;rhel5的gdm的配置文件放在这里/usr/share/gdm/defa…

bzoj 1264: [AHOI2006]基因匹配Match (树状数组优化dp)

链接&#xff1a;https://www.lydsy.com/JudgeOnline/problem.php?id1264 思路&#xff1a; n大小为20000*5&#xff0c;而一般的dp求最长公共子序列复杂度是 n*n的&#xff0c;所以我们必须优化。 题目说了一个数会出现5次&#xff0c;那么我们可以预处理得到 第一个序列a[]每…

C语言第二次博客作业---分支结构

C语言第二次博客作业---分支结构 一&#xff0c;PTA实验作业 题目1.计算分段函数 本题目要求计算下列分段函数f(x)的值 1.代码 double x, result;scanf("%lf", &x);if (x >0)result sqrt(x);elseresult pow( x 1, 2) 2 * x 1 / x;printf ("f(%.2f) …

Lazy.NET

.NET 4.0里&#xff0c;在System名称空间中多了一个名为Lazy<T>新泛型类&#xff0c;该类的作用正如其名称所示。下面给出了一个使用的例子&#xff1a;1 var lazy newLazy<IList<OrderRow>>(2 () >3 {4 var rows //get order rows;5 returnrows;6 });7 8…

Angular 组件交互

Angular 组件交互 组件交互&#xff1a; 组件通讯&#xff0c;让两个或多个组件之间共享信息。 使用场景&#xff1a; 当某个功能在多个组件中被使用到时&#xff0c;可以将该特定的功能封装在一个子组件中&#xff0c;在子组件中处理特定的任务或工作流。 交互方式&#xff1…

java-在应用中获取spring定义的bean

因为写了些bean作为quartz的任务用spring配置了&#xff0c;但有些时候需要在别的类中使用这些bean&#xff0c;没有太仔细去研究spring&#xff0c;依稀记得有个getBean&#xff0c;到网上g了一把&#xff0c;发现方法不止一种&#xff0c;选了一种最简单的方法&#xff1a; 主…

Enterprise Architect 7 入门教程 1

一&#xff0e; 简介生命周期软件设计方案——Enterprise Architect是以目标为导向的软件系统。它覆盖了系统开发的整个周期&#xff0c;除了开发类模型之外&#xff0c;还包括事务进程分析&#xff0c;使用案例需求&#xff0c;动态模型&#xff0c;组件和布局&#xff0c;系…

FCS省选模拟赛 Day5

传送门 Solution Code #include<bits/stdc.h> #define ll long long #define max(a,b) ((a)>(b)?(a):(b)) #define min(a,b) ((a)<(b)?(a):(b)) inline int read() {int x0,f1;char chgetchar();while(ch<0||ch>9){if(ch-)f-1;chgetchar();}while(ch>…