二项式

二项式堆

社会主义新天地 提交于 2020-01-22 18:57:26
#ifndef BINOMIAL_HEAP #define BINOMIAL_HEAP #include <vector> #include <algorithm> #include <iostream> template<typename T> struct BinomialNode { T val; BinomialNode *leftChild; BinomialNode *nextSibling; BinomialNode(const T &data, BinomialNode *left, BinomialNode *next) : val{ data }, leftChild{ left }, nextSibling{ next }{} BinomialNode(T &&data, BinomialNode *left, BinomialNode *next) : val{ std::move(data) }, leftChild{ left }, nextSibling{ next }{} }; template<typename K, typename Cmp = std::less<K>> class BinomialHeap { using BinomialNode = BinomialNode<K>; public: BinomialHeap() :

论文研读1.1 基于 DeepFM 模型的广告推荐系统研究(郁等)

我与影子孤独终老i 提交于 2020-01-07 23:55:57
基于 DeepFM 模型的广告推荐系统研究(郁等) 摘要 信息呈指数爆炸增长的时代,如何在这个信息千变万化的世界里获得用户想要的数据显得尤其重要。作者们提出了DeepFM模型并且实验结果发现,DeepFM模型比逻辑回归和因子分解机模型的效果都要好。 关键词 DeepFM 特征提取 广告推荐 深度神经网络 因子分解机 引言 海量信息与人难以获得准确信息的矛盾现状 广告推荐问题一般可理解为广告点击率问题(基于用户行为的预测问题)。难以解决的问题:数据量大、数据稀疏、异常数据等。复杂模型训练难度大,容易出现过拟合问题(模型越复杂,考虑参数影响因素越多,训练拟合越好),因此工业界一般使用较为浅层的模型,解决的主要问题就是特征工程。 过拟合:模型过度拟合,在训练集(training set)上表现好,但是在测试集上效果差。训练时尽可能的兼顾每个数据,曲线过于完美,训练时数据分散,拟合效果差 欠拟合:模型拟合不够,在训练集(training set)上表现效果差,没有充分的利用数据,预测的准确度低。 防止过拟合的方法有: 获取更多数据 减少特征变量 限制权值(正则化) 贝叶斯方法 结合多种模型 其中最有效方法是获取更多数据,足够的数据能够让模型不断修正自己,获得更好的结果。 防止欠拟合: 引入新的特征 添加多项式特征 减少正则化参数 针对文章参考文献分析,参考文献采用的模型及模型的发展

染色:多项式,分治,二项式反演,(生成函数?)

亡梦爱人 提交于 2019-12-09 07:12:36
Description 为了报答小 C 的苹果, 小 G 打算送给热爱美术的小 C 一块画布, 这块画布可以抽象为一个长度为n 的序列, 每个位置都可以被染成m 种颜色中的某一种. 然而小 C 只关心序列的n 个位置中出现次数恰好为s 的颜色种数, 如果恰好出现了s 次的颜色有k 种, 则小C会产$W_k$ 的愉悦度. 小 C 希望知道对于所有可能的染色方案, 他能获得的愉悦度的和对1004535809 取模的结果是多少. $n \le 10^7$ $m \le 10^5$ $s \le 150$ 总感觉这个s的范围可以搞一些事情,然而并不可以。 题目的含义中有两个「恰好」,想办法干掉。 其中「恰好s次」这个好解决,根据含义来就好了。 另一个「恰好k种」转化为「至少k种」然后容斥解决。 首先设$f_i$表示恰好出现s次的颜色至少有k种时的方案数,根据含义列式: $f_i=C_{m}^{i} \times C_{n}^{i \times s} \times \frac{(i \times s)!}{(s!)^i} \times (m-i)^{n-i \times s} $ 就是先选出$i \times s$个位置,再选出这$i$种颜色,然后把这些颜色排布在这些位置里,最后再在其它位置随意填充其他颜色。 这个肯定是有重复的,因为你在其他位置随意填充时可能出现了其它的恰好出现了s次的颜色

【数论-Lucas定理】

旧城冷巷雨未停 提交于 2019-12-07 12:41:56
1.写在前面:我始终觉得,对于一个问题要知其然,更要知其所以然。Lucas定理在刚刚接触数论的时候就知道了,因为这是一个很常用的定理,常常和中国剩余定理放在一起考。最近在组合数学上出现了很多问题,但是都是找个结论就过去了。浑浑噩噩并不懂其中原理,感觉自己的数学直觉一直在下降,以前我甚至能够从数据中看出来数学表达式,后来学了很多的工具,就变懒了,甚至连一个稍微复杂一点的积分都懒得动手,直接自适应Simpson积过去。今天又拿起了笔,准备把Lucas定理自己证明一遍。证完之后,我似乎又看到之前的那个影子:不畏惧任何数学表达式,即使推导了十几页也毫不畏惧。废话到此结束,正题开始。 2.Lucass定理: Lucas定理是同余理论中的一个很重要的定理,用于组合数取模。常常使用在问题的结果需要对某个数据取模,n,m很大,达到1e15以上,但是p在1e9以内。一般来说最好的效果实在1e5以内。看到这个式子,一个十分典型的递归,并且注意到p是素数。所以我们就会有很多疑问:这个定理怎么来的?p为什么一定要是素数?p不是素数可以吗?我们来解决这些问题。 3.在解决这个问题之前,我想说一个问题:记得是ZOJ的某次月赛吧,问题就是求: . 其实说白了,就是统计杨辉三角形每一行中有多少个奇数。这个问题当时我打了个表,看出了规律。结论和i和n的二进制有关,但是为什么呢? 4.首先证明Lucas定理。

【学习笔记】二项式反演

蹲街弑〆低调 提交于 2019-12-06 07:37:25
考场上的我猜测到了某个题是二项式反演 可惜我不会啊 分治NTT给了60的暴力 然而他们的分治NTT都能跑1e6/dk 回归正题 二项式反演大概就是关于二项式的反演 (废话) 一般来说 初始状态都是状压的0/1状态 然后它们有很好的性质 与具体哪一位的状态无关 所以可以直接记录1的个数 又因为反演≈容斥 所以它的两个基本形式就很好看了 $f(n) = \sum_0 ^ n (-1)^i \binom{n}{i} g(i) \Leftrightarrow g(n) = \sum_0 ^n (-1)^i \binom{n}{i} f(n)$ 一般这个柿子用不到(吧 因为很少上来就是个容斥形式 $f(n) = \sum _{i=0} ^n \binom{n}{i} g(i) \Leftrightarrow\sum_{i=0}^n (-1)^{n-i} \binom{n}{i} f(i)$ 一般是这个柿子比较有用qwq 具体证明自行百度吧(~~其实就是我懒~~ 例题 [HAOI2016] 染色 其实这个题完全可以不用二项式反演直接容斥 也间接性证明了反演的本质就是容斥 考虑恰好为S有k个的限制 按照套路转化为至少有k个为S 设所求函数为G(x) 容斥函数为F(x) 容斥函数可直接计算$F(x) = \binom{m}{x} (m-i)^{n-ix} \frac{(sx)!}{(x!)^s

[bzoj4665]小w的喜糖_二项式反演

自闭症网瘾萝莉.ら 提交于 2019-12-02 19:49:52
小w的喜糖 题目链接 : https://lydsy.com/JudgeOnline/problem.php?id=4665 数据范围 :略。 题解 : 二项式反演裸题。 $f_{i,j}$表示,前$i$种钦定$j$拿到自己种类糖果的方案数。 求完了之后可以二项式反演回来即可。 代码 : #include <bits/stdc++.h> using namespace std; typedef long long ll; const int mod = 1000000009 ; int n, m; ll ans; int col[2010], s[2010], v[2010]; ll c[2010][2010], f[2010][2010], jc[2010], ine[2010], jcc[2010]; char *p1, *p2, buf[100000]; #define nc() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 100000, stdin), p1 == p2) ? EOF : *p1 ++ ) int rd() { int x = 0, f = 1; char c = nc(); while (c < 48) { if (c == '-') f = -1; c = nc(); } while (c > 47) {

「总结」容斥。二.反演原理

為{幸葍}努か 提交于 2019-11-30 23:17:28
二.反演原理 0.综述 说一下个人对反演的理解。 反演是一种手段,一种处理已知信息和未知信息关系的手段,用来得到未知信息的方式。也就是以一种既定的手段在较小的时间复杂度内用已知的信息得到未知的信息。 还有$zsq$学长更加浅显的解读。 反演一般就是把一个好看但难算的式子转化成一个难看且难算的式子在转化为一个难看但好算的式子。 先来一个裸一点的反演 下面要说我知道的四种反演。 子集反演,针对的是集合交并的容斥。 二项式反演,针对组合原理的容斥。 莫比乌斯反演,针对约数和倍数的容斥。 斯特林反演,针对集合划分的容斥。 最值反演($Min\_Max$容斥),针对集合元素出现的最值的反演。 1. 子集反演。 $$g(S)=\sum\limits_{T\subseteq S}f(T)$$ $$f(S)=\sum\limits_{T\subseteq S}(-1)^{\left|S\right|-\left|T\right|}g(T)$$ 这个是裸的容斥,证明的话,奇加偶减自己想想就明白了。 $fr.$小星星。 直接算很麻烦很麻烦很麻烦所以考虑大力容斥可以喵。 限制很多还是$dp$然后,设$dp[i][j][S]$为以$i$为根的子树,$i$在原图中对应了$j$,子树里所有的点都在对应$S$集合中的点,不要求子树一一对应,随便怎么对应都可以的方案。 这个$O(n^3)tree dp$就能够得到

[学习笔记]二项式反演

故事扮演 提交于 2019-11-30 12:21:44
[学习笔记]二项式反演 例题:[King's Colors][ https://vjudge.net/problem/Kattis-kingscolors ] 题意:n个点的树,用恰好k种颜色染色,并且要求相邻两个点不同。 这题可以发现就是组合数学题,跟树的形状一点关系都没有。求最多用k种颜色染色的合法方案很容易: \[ f(n)=k(k-1)^{n-1} \] 易得,令 \(g(k)\) 为恰好 \(k\) 种颜色的方案数 \[ f(k)=\sum_{i=2}^{k}\binom{k}{i}g(k) \] 答案要求 \(g( n )​\) 这要用到二项式反演 二项式反演公式: \[ a_n=\sum_{k=0}^{n}\binom{n}{k}b_k\Leftrightarrow b_n=\sum_{k=0}^{n}(-1)^{n-k}\binom{n}{k}a_k \] 证明:略 例题公式: \[ g(k)=\sum_{i=2}^{k}(-1)^{k-i}\binom{k}{i}f(i) \] #include <bits/stdc++.h> using namespace std; typedef long long ll; const int mod = 1e9+7; const int maxn = 3000; ll fac[maxn],inv[maxn]; ll qpow

R语言Wald检验 vs 似然比检验

回眸只為那壹抹淺笑 提交于 2019-11-29 06:35:58
在开展基于可能性推理的课程时,关键主题之一是基于似然函数的测试和置信区间构建。通常包括Wald,似然比和分数测试。在这篇文章中,我将修改Wald和似然比测试的优缺点。我将重点关注置信区间而不是测试 。 示例 我们将X表示观察到的成功次数的随机变量,x表示其实现的值。似然函数只是二项式概率函数,但参数是模型参数。 所以MLE只是观察到的比例。 Wald置信区间 如果我们使用将参数空间(在我们的示例中为区间(0,1))映射到整个实线的变换,那么我们保证在原始比例上获得仅包括允许参数值的置信区间。 对于概率参数绘制的n = 10,x = 1的二项式示例的对数似然函数 从视觉上我们可以看出,对数似然函数 在绘制时 实际上不是二次方。下图显示了相同的对数似然函数,但现在x轴是对数几率: 二项式的对数似然函数n = 10 x = 1示例,相对于对数几率。 似然比置信区间 似然比95%置信区间定义为(或模型参数为)的那些值总之,虽然似然比方法具有明显的统计优势,但计算上Wald区间/测试更容易。在实践中,如果样本量不是太小,并且Wald间隔是以适当的比例构建的,它们通常是合理的(因此它们在统计软件包中使用)。然而,在小样本中,似然比方法可能是优选的。 此外,当似然比方法仍然(通常)合理时,Wald方法完全失败的情况是在测试参数是否位于其参数空间的边界时。出现这种情况的情况包括随机效应模型