编写找回文质数的程序,总是输出非质数

img


编写找回文素数的程序,输出的不只是质数,还有范围内的其他合数,求解答!谢谢🙏

img


附上代码图以及运营结果

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7715343
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:在训练前标准化了训练集和测试集,训练完了以后,抽取未标准化的一条数据进行预测,结果出了问题
  • 除此之外, 这篇博客: 计算机视觉相关的评价指标中的 混淆矩阵又被称为错误矩阵, 在每个类别下,模型预测错误的结果数量,以及错误预测的类别和正确预测的数量都在一个矩阵下面显示出来,方便直观的评估模型分类的结果。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 您还可以看一下 刘建萍老师的人工智能系列课程零基础讲解知识点和实例应用线性回归梯度下降逻辑回归课程中的 讲解机器学中会涉及到的有关数学方面的知识储备有哪些小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    在这个2048小游戏中,我需要优化的方面是代码效率和可读性。我可以通过简化一些循环、使用更好的变量名、添加注释等方式来提高代码可读性。为了提高代码效率,我可能会更改部分算法来减少循环次数或使用更有效的数据结构。

    代码优化建议:

    1.减少循环次数,提高算法效率。

    例如,在move函数中,对于判断数字合并和移动的操作,我们可以使用vectorized的算法。这样可以显著减少循环次数,从而提高程序的效率和速度。代码示例如下:

    function board = mergeUp(board) % 向上合并 [m,n] = size(board); tempBoard = board'; for i = 1:n mask = tempBoard(:,i)==0; tempBoard(mask,i) = []; while length(tempBoard)>1 if tempBoard(1,i)==tempBoard(2,i) tempBoard(1,i) = tempBoard(1,i)*2; tempBoard(2:end,i) = tempBoard(3:end,i); tempBoard(end,i) = 0; else tempBoard = tempBoard(2:end,:); tempBoard = [0;tempBoard]; end end end board = tempBoard'; end

    2.改进变量名,提高代码可读性。

    缩写虽然可以帮助我们缩短变量名,但是在可读性上会有所欠缺。建议尽量采用具体的、易于理解的变量名。例如,在move函数中,我们可以将i、j、k改为row、col、offset,这样可以更好地解释算法的思路。

    function board = mergeUp(board) % 向上合并 [m,n] = size(board); tempBoard = board'; for col = 1:n mask = tempBoard(:,col)==0; tempBoard(mask,col) = []; while length(tempBoard)>1 if tempBoard(1,col)==tempBoard(2,col) tempBoard(1,col) = tempBoard(1,col)*2; tempBoard(2:end,col) = tempBoard(3:end,col); tempBoard(end,col) = 0; else tempBoard = tempBoard(2:end,:); tempBoard = [0;tempBoard]; end end end board = tempBoard'; end

    3.添加注释,方便代码理解。

    在代码中添加注释可以让其他人更加容易理解代码的思路,特别是那些阅读者可能没有对固定应用有深入了解的人。例如,在move函数中,添加注释会有助于理解算法的思路,特别是合并和移动逻辑的顺序,代码示例如下:

    function board = mergeUp(board) % 向上合并 [m,n] = size(board); tempBoard = board'; for col = 1:n % 将为0的数字移动到最后 mask = tempBoard(:,col)==0; tempBoard(mask,col) = []; while length(tempBoard)>1 % 检测相邻两个数字是否相同 if tempBoard(1,col)==tempBoard(2,col) % 如果相同,将相邻数字合并,并将后续数字向前移动 tempBoard(1,col) = tempBoard(1,col)*2; tempBoard(2:end,col) = tempBoard(3:end,col); tempBoard(end,col) = 0; else % 如果不同,将第一个数字移动到第二个数字之后重新进行检测 tempBoard = tempBoard(2:end,:); tempBoard = [0;tempBoard]; end end end board = tempBoard'; end

    根据以上建议,我们对代码进行优化后,可以得到更加高效和易于理解的代码,从而提高游戏的性能和可玩性。