帮助尝试理解圆形数组中的模运算

2024-02-26

我有一个小问题试图弄清楚模运算是如何计算的。 我正在建立一个队列,所以我有一个圆形数组。 我无法弄清楚这个模运算是如何工作的。

给定 q:一个 5 个元素长度的字符数组, MAX 常量给出数组的最大长度“5” rare 是一个 int,代表数组 q 中的第一个可用位置

    public void enqueue(Character c)throws FullQueueException{

    if(size()== MAX -1){ //if only 1 place left, is full, throw exc 

        throw new FullQueueException("Queue is full");
    }
    q[rare]=c;  
    rare=(rare+1)%MAX;
}

现在,假设稀有的“第一个空点”是三个,那么该方法完成后稀有值是多少? 这是我不明白的,稀有=(稀有+1)%MAX意味着稀有= 4%5,这给出了稀有= 0,8。

方法大小相同:

public int size() {

    return (MAX - front + rear) % MAX;
}

给定 front 一个 int 变量,它表示数组中的第一个元素 假设 front 为 1,rare 为 4,因此数组中有 3 个元素,因此大小为 (5-1+4)%5,即 8%5,即 1.6,而实际大小为 3 有什么建议吗?这可能比java更数学,但可能你们中的一些人之前遇到过同样的疑问。 谢谢你!


我认为您对模运算的作用有点困惑。它给出除法后的整数余数。所以从你的例子来看。

4 % 5 = 4(因为4/5是0,余数是4)

AND

8 % 5 = 3(因为 8/5 是 1,余数是 3)

如果没有看到其余的实现,就很难进一步解释为什么使用模数,但看起来它基本上是用来确保循环数组环绕的。即,当您到达数组末尾时(例如最大大小为 8 的数组的索引 7,您想要的下一个值将是第一个元素,即 8%8 或 0)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

帮助尝试理解圆形数组中的模运算 的相关文章

  • 为神经网络打乱两个 numpy 数组

    我有两个 numpy 数组用于输入数据 X 和输出数据 y X np array 2 3 sample 1 x 16 4 dtype float sample 2 x y np array 1 0 sample 1 y 0 1 dtype
  • 为什么在 10 个 Java 线程中递增一个数字不会得到 10 的值?

    我不明白 a 的值为0 为什么 a 不是10 那段代码的运行过程是怎样的 是否需要从Java内存模型来分析 这是我的测试代码 package com study concurrent demo import lombok extern sl
  • 在Matlab中对字符进行分组并形成矩阵

    我有 26 个字符 A 到 Z 我将 4 个字符组合在一起 并用空格分隔以下 4 个字符 如下所示 abcd efgh ijkl mnop qrst uvwx yz 我的Matlab编码如下 str abcdefghijklmnopqrst
  • 以相反的顺序打印任何集合中的项目?

    我在 使用 Java 进行数据结构和问题解决 一书中遇到以下问题 编写一个例程 使用 Collections API 以相反的顺序打印任何 Collection 中的项目 不要使用 ListIterator 我不会把它放在这里 因为我想让有
  • 自定义列表字段点击事件

    我正在编写一个应用程序 其中我创建了用于显示列表视图的自定义列表字段 我的 CustomListField 包含连续的一个图像和文本 我正在通过单击列表字段行获取字段更改侦听器 但我也想将字段更改侦听器放在图像上 谁能告诉我我该怎么做 这是
  • 为什么用scala写的代码比用java写的慢6倍?

    我不确定我在编写 scala 代码时是否犯了一些错误 问题是 The four adjacent digits in the 1000 digit number that have the greatest product are 9 9
  • 未装饰窗户的 Windows Snap 功能?

    有谁知道如何允许未装饰的窗户使用此功能 唯一的选择就是重新实施它 有任何想法吗 谢谢 可停靠可能是唯一的JToolBar http docs oracle com javase tutorial uiswing components too
  • 在光标所在行强制关闭!

    嘿 我正在尝试创建一个应用程序来查找存储在 SQlite 数据库中的 GPS 数据 但我面临一个问题 我构建了一个 DbAdapter 类来创建数据库 现在我尝试使用以下函数从另一个类获取所有数据上的光标 public Cursor fet
  • 2^31 次方的 Java 指数错误 [重复]

    这个问题在这里已经有答案了 我正在编写一个java程序来输出2的指数幂 顺便说一句 我不能使用Math pow 但是在 2 31 和 2 32 处我得到了其他东西 另外 我不打算接受负整数 My code class PrintPowers
  • 如果一个多维数组中的子数组与另一个多维数组不同,则覆盖该子数组

    我坚持这个问题 真的不知道如何解决 我有两个多维数组 需要将第二个数组中的每个 entry id 与第一个数组进行匹配 然后需要检查第二个数组中的每个 file no 是否在数据库 第一个数组 中 并且 status 是否与第一个数组匹配
  • 如何自定义舍入形式

    我的问题可能看起来很简单 但仍然无法得到有效的东西 我需要自定义 Math round 舍入格式或其他格式以使其工作如下 如果数字是 1 6 他应该四舍五入到 1 如果大于或等于 1 7 他应该四舍五入到 2 0 对于所有其他带有 6 的小
  • UseCompressedOops JVM 标志有什么作用以及何时应该使用它?

    HotSpot JVM 标志是什么 XX UseCompressedOops我应该做什么以及什么时候使用它 在 64 位 Java 实例上使用它 与不使用它 时 我会看到什么样的性能和内存使用差异 去年大多数 HotSpot JVM 都默认
  • 类更改(例如字段添加或删除)是否保持 Serialized 的向后兼容性?

    我有一个关于 Java 序列化的问题 在这种情况下 您可能需要修改可序列化类并保持向后兼容性 我有丰富的 C 经验 所以请允许我将 Java 与 NET 进行比较 在我的Java场景中 我需要使用Java的运行时序列化机制序列化一个对象 并
  • 文本视图不显示全文

    我正在使用 TableLayout 和 TableRow 创建一个简单的布局 其中包含两个 TextView 这是代码的一部分
  • Lombok 不适用于 Eclipse Neon

    我下载了lombok jar lombok 1 16 14 jar 并将其放入我的下载中 然后我点击这个 jar 执行正确地识别了我的 MacOS 上的 Eclipse 实例 然后我选择了我想要的实例 Lombok也在pom xml中指定
  • 我们如何使用 thymeleaf 绑定对象列表的列表

    我有一个表单 用户可以在其中添加任意数量的内容表对象这也可以包含他想要的列对象 就像在 SQL 中构建表一样 我尝试了下面的代码 但没有任何效果 并且当我尝试绑定两个列表时 表单不再出现 控制器 ModelAttribute page pu
  • C语言声明数组没有初始大小

    编写一个程序来操纵温度详细信息 如下所示 输入要计算的天数 主功能 输入摄氏度温度 输入功能 将温度从摄氏度转换为华氏度 独立功能 查找华氏度的平均温度 我怎样才能在没有数组初始大小的情况下制作这个程序 include
  • 在会话即将到期之前调用方法

    我的网络应用程序有登录的用户 有一个超时 在会话过期之前 我想执行一个方法来清理一些锁 我已经实现了sessionListener但一旦我到达public void sessionDestroyed HttpSessionEvent eve
  • 如何使用 PHP 查找字符串中字符的序列模式?

    假设我有随机的文本块 EAMoAAQAABwEBAAAAAAAAAAAAAAABAgMFBgcIBAkBAQABBQEBAAAAAAAAAAAAAAAGAgMEBQcBCBAAAQMDAgMEBQcIBQgGCwEAAQACAxEEBSEG
  • 设置 TreeSet 的大小

    有没有办法像数组一样对 Java 集合中的 TreeSet 进行大小限制 例如我们在数组中 anArray new int 10 数组具有固定长度 在创建数组时必须指定该长度 A TreeSet当您向其中添加元素时会自动增长 您无法设置其大

随机推荐

  • LLDB GUI 的文档

    我最近一直在研究 LLDB 的 GUI 功能 有关此功能的 stackoverflow 链接有描述here https stackoverflow com questions 19820247 is there a tui mode for
  • MongoDB 3.2 身份验证失败

    我使用以下命令集创建一个用户 这应该在两者中创建用户admin数据库以及我的目标数据库 c2d mongo 127 0 0 1 27017 MongoDB shell version 3 2 6 29 g5c19788 connecting
  • 使用epplus创建.xlsm文件

    我正在尝试让网站导出 xlsm 文件 但似乎找不到任何有帮助的内容 这是我用来测试构建 xlsx 文件 有效 的一个简单示例 using OfficeOpenXml div Change file extension to xlsm to
  • 如何在 PHP 中解析日期字符串?

    日期字符串为Apr 30 2010 我怎样才能将字符串解析为2010 04 30使用 PHP 使用 DateTime API 需要 PHP 5 3 dateTime DateTime createFromFormat F d Y Apr 3
  • 表达请求 .query.xyz 作为字符串 |细绳[]

    我正在尝试为我的变量分配一个类型 该变量从express 请求查询中获取其值 req query 的类型为 QueryString ParsedQs 例如 req query accountId 的类型为 string QueryStrin
  • 是否有一个玩笑配置会导致 console.warn 测试失败?

    如何配置笑话测试以因警告而失败 console warn stuff fail test 您可以使用这个简单的覆盖 let error console error console error function message error a
  • R 的 xtsum 命令?

    我们正在处理面板数据 Stata中有一个命令 xtsum 这给出了数据集中变量的内部方差和方差之间 R 是否有类似的命令可以产生干净的输出 我用了一个小函数来做到这一点 函数 XTSUM 接受三个输入 数据 数据集varname xtsum
  • C# 嵌套 Try Catch 语句或方法?

    简单的最佳实践问题 应该嵌套 try catch 语句还是只使用方法 例如 如果您有一个打开文件的方法确实有效并关闭该文件 那么您将在 try catch 之外进行打开和关闭 或者更确切地说 在 finally 块中进行关闭 现在 如果您的
  • 如何为 'a:before' 和 'a:after' 编写 ':hover' 条件?

    我怎样才能写 hover and visited的条件a before 我想a before hover 但它不起作用 这取决于您实际想要做什么 如果您只是想将样式应用到 before伪元素 当a元素匹配一个伪类 你需要写a hover b
  • 将结构体转换为数组是否合法?

    考虑以下 Just a sequence of adjacent fields of same the type repr C derive Debug struct S
  • 使用 MongoDB 与 MySQL 与大量 JSON 字段?

    有一种微博类型的应用程序 两个主要的基本数据库存储是 MySQL 或 MongoDB 我计划对大量数据进行非规范化 即对帖子进行的投票存储在投票表中 并且主帖子表中的计数也会增加 该帖子还涉及其他操作 例如点赞 投票否决 如果我使用 MyS
  • WindowManager:MainActivity 泄露了原始窗口 com.android.internal.policy.impl.PhoneWindow$DecorView@40731aa0

    这个警告是什么意思 我开发了一个 Android 应用程序 我在 logcat 中看到了这个警告 此警告不会导致关闭应用程序 一切都运行没有任何问题或中断 但它是否会导致一些在我的应用程序中看不到的问题 Continue logcat at
  • 为 RSpec 套件中的所有示例设置一次变量(不使用全局变量)

    设置变量一次以供 RSpec 套件中的所有示例使用的传统方法是什么 我目前在中设置了一个全局变量spec helper检查规范是否正在 调试模式 下运行 debug ENV key DEBUG ENV DEBUG casecmp false
  • 将“onclick”事件附加到 D3 图表背景

    我有一个 D3 直方图 我在其中的条形图上附加了一个 onclick 事件 var bar svg selectAll bar data data enter append g attr class bar attr transform f
  • 我可以引用外部 DTD 来了解 DTD 中 ELEMENT 的结构吗?

    我可以定义一个 DTD 使其中的元素的结构在外部 DTD 中定义吗 我的意思是类似以下内容 这是一个我知道在某些方面无效的示例 但希望它能让您了解我正在寻找的内容
  • 解释 scipy 差分进化中顶级参数的直觉

    我正在使用差异进化 https docs scipy org doc scipy 0 15 1 reference generated scipy optimize differential evolution htmlscipy 中的优化
  • 使目标需要 32 位和 64 位版本的 dll

    在我的 C Visual Studio 解决方案中 一个项目 Proxy 为 Win32 构建生成 Proxy dll 为 x64 构建生成 Proxy64 dll 现在我想添加一个需要同时构建 Proxy dll 和 Proxy64 dl
  • 计算和限制文本区域中的单词数

    我设法使这个小 jquery 函数来计算在 textarea 字段中输入的单词数 这是小提琴 http jsfiddle net 7DT5z 这是代码 JQUERY document ready function var wordCount
  • 如何在 SQL azure 中更新标识列?是否可以?

    我有这个代码 ALTER TABLE FishSticks ADD MyNewIdentityColumnId INT IDENTITY 1 1 NOT NULL SET IDENTITY INSERT FishSticks ON UPDA
  • 帮助尝试理解圆形数组中的模运算

    我有一个小问题试图弄清楚模运算是如何计算的 我正在建立一个队列 所以我有一个圆形数组 我无法弄清楚这个模运算是如何工作的 给定 q 一个 5 个元素长度的字符数组 MAX 常量给出数组的最大长度 5 rare 是一个 int 代表数组 q