首页 > 其他分享 >关于取模、进制的问题

关于取模、进制的问题

时间:2023-09-07 21:59:54浏览次数:37  
标签:取模 frac 进制 kb bk 关于 mod

先来定义一下取模(b不等于0)。

\(r(a, b) = a - b \times \lfloor \frac{a}{b} \rfloor = t\)

下面讨论一下t的取值范围。

  1. b>0

\(k=\lfloor \frac{a}{b} \rfloor\),则 \(r(a,b)=a-kb\)。

因为 \(k \le \frac{a}{b} < k+1\),\(a-b\times \frac{a}{b}=0\)。

配凑一下,就是 \(a-bk-b<a-b\times \frac{a}{b}=0\le a-bk\)

\(a-bk=r(a,b)\ge 0, a-bk=r(a,b)<b\),所以 \(0 \le r(a,b) < b\)。

  1. b<0,同理 \(b<r(a,b)\le 0\)。

接着我们尝试让情况二变成情况一的范围。

直觉告诉我们,不等式加上-b就可以了。

\(a=kb+r=r-b+b+kb=(k+1)b+(r-b)\)

此时 \(0<r(a,b)\le -b\),这个等号很烦,干脆当\(r(a,b)=0\)时不变化,这样就ok了。

于是,r的取值范围就统一为了 \(0 \le r < |b|\)


另外C++里面商是负数的时候会向上取整,用类似的方法可以证明此时的余数是 \(-b<r\le 0\),所以(r+mod)%mod,最后%mod就是防止\(r=0\)的情况,此时应该不修改r,刚好%mod可以做到这一点。


进制分解可以看成一个递归的过程

k进制

div(x)=k*div([x/k])+r(x,k)

[x/k]和上述证明一样,如果k是负数,就+1。

画成递归树会发现这样子构造的方案刚好满足进制的定义(\(k^n...\))。


例题:P1017 [NOIP2000 提高组] 进制转换

标签:取模,frac,进制,kb,bk,关于,mod
From: https://www.cnblogs.com/zhangchenxin/p/17686151.html

相关文章

  • 关于传统迁移学习的一点概念
    (来源于一位学姐的口述)迁移学习的目标:训练数据集A迁移到测试数据集B,它们的数据分布不一样。方法1:特征空间的对齐。比如重要性采样,强行让两个分布比较接近。方法2:把特征分为领域无关、领域相关的部分,把这两部分提取出来。领域就是图片风格之类的东西,一些可能会影响数据......
  • 关于 Google 搜索运作方式的解析
    Google搜索是一款全自动搜索引擎,会使用名为“网页抓取工具”的软件定期探索网络,找出可添加到Google索引中的网页。实际上,Google搜索结果中收录的大多数网页都不是手动提交的,而是我们的网页抓取工具在探索网络时找到并自动添加的。本文档从网站的角度介绍了Google搜索运作方式......
  • 关于sql语句进行删除时不能使用简称的问题记录
    1、问题:在代码中使用到了sql删除的功能,最简单的删除sql:deletefrompeoplepwherep.id=1;但是出现了问题,提示我无法删除,报错为:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear......
  • 关于element-ui 中table的问题以及解决
    这篇文章是记录上个月开发中的问题,有知道原理的请发送邮件0727我吐了,element-ui,这玩意咋这么多坑背景点击某个按钮,打开内嵌表单的dialog,然后不能让用户手动输入值,要根据后台去查可选项,将可选项变成可视化的表格,表格包含基本信息,再让用户去选;因为有两项值都是这样操作的,即通过......
  • 使用VMware创建虚拟机关于VMware Tools无法安装的问题
    VM版本:操作系统版本:WindowsServer2008R2x641、虚拟机菜单下的安装VMwareTools为灰色解决方案:在虚拟机设置中,找到CD/DVD,选择使用ISO映像文件,找到VMware安装路径下的windows.iso(linux系统选择linux.iso)设置好后,在虚拟机中的光盘中就可以已找到安装程序了,双击安装即可:......
  • 关于日常数据相关的一些记录
    1.查询某个表中是否有重复数据;SELECTIDCARDFROM 表名 groupby字段名 havingcount(*)>12.神通数据库不小心清空了表数据,如何恢复 第二种数据删除后恢复的操作步骤:---------------------------------------------------------------------------------------1.首......
  • 关于“ora-01483:DATE或NUMBER赋值变量的长度无效”的问题
    在建的表结构中有一个字段类型为varchar2(4000),在页面输入的文字并不多但是后台却报:关于“ora-01483:DATE或NUMBER赋值变量的长度无效”错误网上查了一下,最后总结自己可能的原因是:首先说一下我的那个环境:数据库服务器是oracle,采用hibernate方式保存,页面表单采用的多行文本域,整个项目......
  • 关于多线程的相关概念
    多线程多线程的好处多线程可以提高CPU的使用效率比如单线程运行时遇到网络等待的耗时操作时,只能乖乖的等待,且交互终端但是多线程的情况下,一个线程负责交互,另一个负责计算线程的访问权限知道哪些数据是线程私有,哪些变量是线程之间共享数据线程调度和优先级当线程数量......
  • Excel表格中进行36进制流水编号
    最简单的操作步骤:1、A1:A10是数字0~9这10数值,A11~A36是大写字母A、B、C…………Y、Z这26个字母2、则可在B1单元格或其他单元格中,输入公式:=INDEX($A$1:$A$36,1+MOD(INT((ROW()-1)/46656),36))&INDEX($A$1:$A$36,1+MOD(INT((ROW()-1)/1296),36))&INDEX($A$1:$A$36,1+MOD(INT((35+......
  • 关于antd Input 的defaultValue无法重新渲染的问题
    最近在开发一个功能,table里面的Input组件。需要单行能够编辑,又要多行一起编辑,如下。  在这种情况下,就只能对Input组件使用value受控,而不能使用defaultValue受控。因为defaultValue受控在批量编辑的时候无效。现在遇到的问题是,使用value受控,在onChange的时候输入框会有非常......