约瑟夫问题中的非常给力的算法.....

问题描述

现实现约瑟夫问题,循环链表来做事比较的常见的,但上网搜到几个非常好的算法,,但看不懂第二种方法,我照着网上的实现了一下,请各位大侠帮忙解释一下第二种算法的思路。importjava.util.Scanner;publicclassYuesefu{publicstaticvoidmain(String[]args){Scannerscan=newScanner(System.in);intn=scan.nextInt();intm=scan.nextInt();//第一种方法这是求最终的胜利者的还可以明白/*ints=0;for(inti=2;i<=n;i++){s=(s+m)%i;//System.out.println(s);}System.out.println(s+1);*///第二种方法//这个算法就没看懂了inti=0,p=0;while(++i<=n){p=i*m;while(p>n){p=p-n+(p-n-1)/(m-1);}System.out.println(p);}}}

解决方案

解决方案二:
先内循环,在外循环呗
解决方案三:
引用1楼boyone2009的回复:

先内循环,在外循环呗

哥们!你回复的也太给力了吧!这也是答案!。。。。。。。外循环,内循环,。。。。。。p=i*m;while(p>n){p=p-n+(p-n-1)/(m-1);}你看懂了为什么是这样的公式吗?

时间: 2024-08-29 21:24:56

约瑟夫问题中的非常给力的算法.....的相关文章

Python中使用hashlib模块处理算法的教程

  这篇文章主要介绍了Python中使用hashlib模块处理算法的教程,代码基于Python2.x版本,需要的朋友可以参考下 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示). 举个例子,你写了一篇文章,内容是一个字符串'how to use python hashlib - by Michael',并附上这篇文章的摘要是'2d7

PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)_php技巧

本文实例讲述了PHP中strnatcmp()函数"自然排序算法"进行字符串比较用法.分享给大家供大家参考,具体如下: PHP中strnatcmp()函数使用"自然"算法来比较两个字符串(区分大小写),通常在自然算法中,数字 2 小于数字 10.而在计算机排序中,10 小于 2,这是因为 10 中的第一个数字小于 2. strnatcmp()函数的定义如下: strnatcmp(string1,string2) 参数说明: string1  必需.规定要比较的第一个字

Mahout中的一些相似度算法实现解读

Mahout中实现的推荐算法是协同过滤,而无论是UserCF还是ItemCF都依赖于user相似度或item相似度.本文是对mahout中的一些相似度算法的解读. Mahout相似度相关类关系如下: 有点乱(^.^)     从上图可看出,Mahout主要针对用户相似度和物品相似度的计算,并且除了HybridSimilarity之外全都能够用于计算user和item两者的相似度,只有HybridSimilarity只能计算item相似度.接来下分三部分进行分析:继承AbstractSimilar

matlab-求MATLAB中CT 图像重建中的ART和SART算法的程序代码

问题描述 求MATLAB中CT 图像重建中的ART和SART算法的程序代码 求各位大神帮忙,求MATLAB中CT 图像重建中的ART和SART算法的程序代码,我的邮箱:21227023@zju.edu.cn.谢谢各位啦!!! 解决方案 不太会Matlab,在用Mathematica 解决方案二: 已经找到了相应的程序代码了,3Q 解决方案三: 能不能分享一下代码,3q,1448338302@qq.com

java语言中哪一种排序算法用的最多?

问题描述 java语言中哪一种排序算法用的最多? java语言中哪一种排序算法用的最多?快速排序既然效率高,为什么我们还要用冒泡呢?冒泡的好处是什么? 解决方案 不能说快速排序一定效率高,对于有序的序列,归并排序的效率就更高.对于大量小整数的排序,基数排序不但效率高,而且占用内存少.各种排序有不同的使用场合.所以都要学习,而不是问哪种常用. 解决方案二: 冒泡排序是用来理解排序的思路的,快速排序是默认的java排序,但是稳定性极差,建议你去百度八大排序,从快速插入排序开始,系统的学习理解排序.

TensorFlow Agents日前开源,轻松在TF中构建并行强化学习算法

用于在TensorFlow中构建并行强化学习算法的高效基础架构范例TensorFlow Agents日前开源,这个项目是由谷歌的两位研究员James Davidson.Vincent Vanhoucke,以及Danijar Hafner共同研发的.关于这个项目的开源信息他们在GitHub上进行了介绍,雷锋网 AI 科技评论将内容进行编译整理. TensorFlow Agents TensorFlow Agents为强化学习提供了优化的基础架构,它将OpenAI gym接口扩展到多个并行环境,并能

代码-根据二叉树的先序中序重构二叉树的算法问题

问题描述 根据二叉树的先序中序重构二叉树的算法问题 代码编译没有问题,就是输出结果不对 这是我的代码 #include #include using namespace std; class TreeNode { private: int data; public: TreeNode* LeftChild; TreeNode* RightChild; TreeNode():data(0),LeftChild(NULL),RightChild(NULL) { } TreeNode(int& rec

关于游戏开发中背包物品的整理算法的问题

问题描述 关于游戏开发中背包物品的整理算法的问题 场景是游戏中的背包里面要整理物品,每个物品在格子中方的量是一定的(假设99), 要求相同的东西放在一块做整理,位置顺序是按照原始背包的顺序, 比如:O O A(50) B(22) A(50) 排好后是 A(99) A(1) B(22 ) 比如:O O B(50)A(50)B (50) A(36)摆好后是 B(99)B( 1) A(86) 我的想法比较low是先合再一起 再分开,效果不太好,请教一下各路大神是否有更好的算法实现 解决方案 建议是先合

库函数-opencv中图像轮廓矢量化算法

问题描述 opencv中图像轮廓矢量化算法 opencv中图像轮廓矢量化算法,有直接矢量化的库函数么?急求答案! 解决方案 说的有点含糊,如果你是要opencv中的代码,你可以直接抠出来用.