首页 > 其他分享 >数论函数小记

数论函数小记

时间:2024-08-08 15:49:42浏览次数:11  
标签:le 函数 数论 sum 差分 求和 倍数 operatorname 小记

这篇文章是上了 \(\rm yyc\) 的课之后得到的一些心得和总结。

高维点视角下的整除关系:

我们可以将一个数 \(x\) 唯一分解为 \(\prod_{i = 1}^{+\infty}p_i^{x_i}\) 的形式(其中 \(p_i\) 都是素数)。注意到每一种素数互不干扰,于是可以把每一种不同的素数看成立体空间的一维,把 \(x\) 看做一个高维点 \(p_x = (x_1, x_2, ....)\)。

从而有: \(m | n \Leftrightarrow \forall i, m_i \le n_i\),即 \(p_m \le p_n\)。(注意这里比较的是偏序关系)。

接下来我们定义函数 \(f\) 的约数求和形式:

\[(\operatorname{Lsum}(f))(n) = \sum_{d|n}f(d) = \sum_{p_d \le p_n} f(d) \]

注意到这个求和式的本质实际上是高位前缀和,于是我们可以依次考虑每一维并对每一维分别做前缀和。这样就做到 \(O(n \log \log n)\) 求和了。

同样的,我们定义倍数求和 \((\operatorname{Rsum}(f))(n) = \sum_{n | d}f(d) = \sum_{p_n \le p_d} f(d)\)。

有前缀和,自然我们就会考虑差分。定义 \(f\) 的约数差分为:

\[(\operatorname{Lsum}(\operatorname{Ldif}(f)))(n) = f(n) \]

即前缀和的逆操作,倍数差分定义也是相同的。但是有这个定义式我们不足以了解约数差分函数的具体情况。容易发现 \(\operatorname{Ldif} * \operatorname{I} = f\),从而 \(\operatorname{Lidf} = f * \mu\)。

从而倍数差分也不难联想到是 \(\operatorname{Rdif}(n) = \sum_{n | d} \mu(d)f(\frac{d}{n})\),这个带入证明即可。

Luogu2714 四元组统计

“如果你还慢慢推式子,那你就输了。”

记 \(x\) 在 \(a\) 中出现的次数为 \(cnt_x\)。先做一遍倍数求和得到 \(\operatorname{Rsum}\)。那么对于一个 \(x\),四个数都是 \(x\) 的倍数的四元组个数为 \(C_{cnt_x}^4\)。

在做一遍倍数差分,答案是 \(\operatorname{Rdif}(1)\),没了。。。

标签:le,函数,数论,sum,差分,求和,倍数,operatorname,小记
From: https://www.cnblogs.com/little-corn/p/18348948

相关文章

  • 21.python函数(return)
    return一、return语句1、return是指定一个返回值2、在python中创建一个函数,可以用return语句指定返回的的值,这个返回值可以是任意的类型3、return语句在同一个函数中可以出现多次,但是只有有一个得到执行,就会直接结束函数的执行。return后面的语句不执行了4、return的格式re......
  • FreeRTOS-空闲任务prvIdleTask()函数解析
    目录prvIdleTask()函数prvCheckTasksWaitingTermination()函数prvGetExpectedIdleTime()函数以下源码为FreeRTOSv9.0.0版本,不同版本源码可能会有所区别,但实现的逻辑差不多。需要空闲任务的原因:处理器总是需要代码来执行——所以至少要有一个任务处于运行态。为了保证这一点,当......
  • 多线程执行函数(迭代器版本)
    #include<iostream>#include<numeric>#include<thread>#include<vector>template<typenameIterator,typenameT>structthreadBlock{voidoperator()(T(*func)(Iterator,Iterator,T),Iteratorfirst,Iteratorlast,T&am......
  • C语言新手小白详细教程(6)函数
    希望文章能够给到初学的你一些启发~如果觉得文章对你有帮助的话,点赞+关注+收藏支持一下笔者吧~阅读指南:开篇说明为什么要使用函数?1.定义一个函数2.初步调用函数3.定义函数详解3.形式参数与实际参数4.使用return接收函数的返回值5.函数声明开篇说明截止目前,我......
  • Mysql基础函数
    标签(空格分隔):MySQL一、MySQL中常见的函数一、字符函数1.length获取参数值的字节个数查看字符长度语句:SHOWVARIABLESLIKE'%char%'2.concat拼接字符串SELECTCONCAT(last_name,'_',first_name)姓名FROM`employees`;3.upper(大写转换)、lower(小写转换)语法:upp......
  • hive05_窗口函数
    窗口函数窗口函数可以更加灵活地对一定范围内的数据进行操作和分析,它能够为每行数据划分一个窗口,然后对窗口范围内的数据进行计算,最后将计算结果返回给该行数据;举个例子,区别于GroupBy,GroupBy对分组范围内的数据进行聚合统计,得到当前分组的一条结果;窗口函数对每一条数据处理,......
  • php常用函数
    /***格式化金额*/functionformat_amount($float){if($float==intval($float)){returnintval($float);}elseif($float==sprintf('%.1f',$float)){returnsprintf('%.1f',$float);}return$float;}......
  • 函数返回类型联合的赋值中的不兼容类型
    修复此类函数的mypy的最佳方法是什么?fromtypingimportUniondefa(b:int)->Union[int,str]:ifb:returnbelse:return'2'c:int=a(1)d:str=a(0)mypy结果:error:Incompatibletypesinassignment(expressionhasty......
  • Python @overload 使用联合类型会导致函数签名重叠错误
    我想编写以下重载的Python函数:fromtypingimportAny,TypeVar,overload_T1=TypeVar('_T1')_T2=TypeVar('_T2')_T3=TypeVar('_T3')@overloaddefparse_as(ty:type[_T1]|type[_T2],s:bytes)->_T1|_T2:...@overload......
  • 旨在在函数达到某个值时中断函数的 Elif 条件不起作用
    我一直在开发一个程序,该程序检测按下“enter”的次数,问题是当变量达到某个值时,应该中断函数的elif/if条件会不断计算次数已按下“enter”而不是中断该功能。frompynputimportkeyboardkeystroke=0defon_release(key):print(key)globalkeystrokeifk......