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

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(使用前将#替换为@)

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

随机推荐

  • 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