56 lines
3.5 KiB
TeX
56 lines
3.5 KiB
TeX
|
\documentclass[实验报告模板]{subfiles}
|
|||
|
|
|||
|
\renewcommand{\mydate}{
|
|||
|
2023/10/10
|
|||
|
}
|
|||
|
\renewcommand{\mychapternum}{2}
|
|||
|
|
|||
|
\begin{document}
|
|||
|
\mytitle
|
|||
|
\begin{enumerate}
|
|||
|
\myitem{实验目的}{
|
|||
|
\item 使用第二章知识解决约瑟夫环问题(复杂版)。
|
|||
|
}
|
|||
|
\myitem{实验内容}{
|
|||
|
\item 在原有约瑟夫环的基础上,输入参与这场游戏的人数 n 与自杀报数 m,
|
|||
|
输出为最后两个幸存者的位置序号。
|
|||
|
\item 在第一题的基础上,输入参与这场游戏的人数 n 与两个自杀报数 a 和
|
|||
|
b,按照一次 a 一次 b 的顺序自杀(a,b 可以为负数,正数代表正向,
|
|||
|
负数代表反向),输出为最后两个幸存者的位置序号。
|
|||
|
}
|
|||
|
\myitem{实验原理}{
|
|||
|
\item 程序设计原理。
|
|||
|
}
|
|||
|
\myitem{实验步骤}{
|
|||
|
\item 问题抽象
|
|||
|
\item 编写程序
|
|||
|
\item 调试程序
|
|||
|
\item 完善总结
|
|||
|
}
|
|||
|
\myitem{调试过程、结果和分析}{
|
|||
|
\item 简单考虑,暂时不考虑输入错误或者输入为0的情况;
|
|||
|
\item JavaScript没有指针的概念,所以使用对象的引用代替;
|
|||
|
\item JavaScript在严格模式下暂时无法直接删除对象,因此移除结点时无法完全销毁一个节点;
|
|||
|
\item 最后只留下两个,而不是$\min(\mathrm{abs}(a), \mathrm{abs}(b))-1$个;
|
|||
|
\item 删除的结点应该作为第0个,此时往前a个或往后b个,一开始如果a是正数那么应该按照$1, 2, 3, \ldots $的顺序遍历,如果a是负数那么应该按照$n, n-1, n-2, \ldots $的顺序遍历;
|
|||
|
\item 由于此问题中只涉及到初始化链表、删除单个结点两个操作,因此链表的添加结点、清空、销毁等操作暂不需要实现。
|
|||
|
}
|
|||
|
\myitem{总结}{
|
|||
|
\item 由于JavaScript的异步性质,需要进行连续多个输入时,可以将回调过程封装成Promise对象后,使用async创建异步函数,在其中使用await可以方便使用Promise对象,避免大量回调,同时也可以结合循环、分支等结构,实现更复杂的控制;
|
|||
|
\item 抽象出了结点对象和链表对象,并且实现了从当前节点开始寻找第n个结点(可以为负数)的方法;
|
|||
|
\item 整个文件中只有input和main\_函数与Node.js环境耦合,即使用了readline模块,而主要功能放在main函数中,因此在浏览器环境中可以直接调用main函数,方便代码复用。
|
|||
|
}
|
|||
|
\myitem{附件}{
|
|||
|
\itemsep 3em
|
|||
|
\item 在原有约瑟夫环的基础上,输入参与这场游戏的人数 n 与自杀报数 m,
|
|||
|
输出为最后两个幸存者的位置序号。\\
|
|||
|
(JavaScript,Node.js环境)
|
|||
|
\inputminted[linenos=true,breaklines=true]{javascript}{../JavaScript/第二章作业1.js}
|
|||
|
\item 在第一题的基础上,输入参与这场游戏的人数 n 与两个自杀报数 a 和
|
|||
|
b,按照一次 a 一次 b 的顺序自杀(a,b 可以为负数,正数代表正向,
|
|||
|
负数代表反向),输出为最后两个幸存者的位置序号。\\
|
|||
|
(JavaScript,Node.js环境)
|
|||
|
\inputminted[linenos=true,breaklines=true]{javascript}{../JavaScript/第二章作业2.js}
|
|||
|
}
|
|||
|
\end{enumerate}
|
|||
|
\end{document}
|