约瑟夫环(递归) 中山职业技术学院 主讲:陈帼鸾 1.

Slides:



Advertisements
Similar presentations
因数与倍数 2 、 5 的倍数的特征 绿色圃中小学教育网 扶余市蔡家沟镇中心小学 雷可心.
Advertisements

排列组合和二项式定理 第二组. 一、教材分析 本课内容是人教 B 版,选修 2 — 3 第一章内容,本章在整个高中数 学中占有重要地位。以计数问题为主要内容的排列与组合,属于 现在发展很快且在计算机领域获得广泛应用的组合数学的最初步 知识,它不仅在博弈、工作安排、电话号码、密码设置等实际问 题中应用广泛,是学习概率理论的准备知识,而且由于其思维方.
高考数学专题之概率 高考数学冲刺 主讲人 : 北京大学光华管理学院 何洋. 北京师范大学京师大厦 9810 室 电话 : 传真 : 写在前面的话 概率是高中数学新教材中新增的内容, 在 实际生活中应用非常广泛, 并且由于概率 论是统计学的基础,
概率论 第四节 等可能概型 ( 古典概型 ) 古典概型的定义 古典概率的求法举例 小结 布置作业.
第五章 导数和微分 §1 导数的概念 一、问题的提出 1. 自由落体运动的瞬时速度问题 如图, 取极限得.
狂犬病 狂犬病晚期的犬. 一、狂犬病病原 : 狂犬 病毒属于弹状病毒, 75×180nm 大小,外层为含脂 质的囊膜,内部为含核蛋白的 核心,对脂溶剂敏感,为单链 RNA 病毒。病毒主要存在于感 染动物的唾液和脑组织。 狂犬病病毒结构.
第 12 章 命 名 空 间 (时间: 1 次课, 2 学时)
氨基酸转换反应 ( 一 ) 血液中转氨酶活力的测定 一. 目的 : 了解转氨酶在代谢过程中的重要作用及其在临 床诊断中的意义, 学习转氨酶活力测定的原理和方 法。 二. 原理 : 生物体内广泛存在的氨基转换酶也称转氨酶, 能 催化 α – 氨基酸的 α – 氨基与 α – 酮基互换, 在氨基酸 的合成和分解尿素和嘌呤的合成等中间代谢过程中.
親愛的老師您好 感謝您選用本書作為授課教材,博碩文化準備本書精選簡報檔,特別摘錄重點提供給您授課專用。 說明: 博碩文化:
每节一经典 用系统的观点观察问题 总体设计,逐步求精 计算机科学学院 王小明 (博士/教授/博士生导师)
计算学科的基本问题 本章首先介绍一个对问题进行抽象的典型实例——哥尼斯堡七桥问题。然后,通过“梵天塔”问题和“停机问题”分别介绍学科中的可计算问题和不可计算问题。从“梵天塔”问题再引出算法复杂性中的难解性问题、P类问题和NP类问题,证比求易算法,P=NP是否成立的问题。
颜色: 在可见光区 nm范围内,从长波一端向短波一端的顺序依次为: 红色 nm 橙色 nm 黄色 nm 绿色 nm 青色 nm 蓝色 nm
请说出牛顿第一定律的内容。.
数列(一) 自强不息和谐发展 授课教师:喻永明.
中部科學工業園區台中園區擴建 用地(原大肚山彈藥分庫)開發計畫
解排列组合问题的常用策略.
武进区三河口中学欢迎您.
第十一章 真理与价值 主讲人:阎华荣.
《高等数学》(理学) 常数项级数的概念 袁安锋
病原:痘病毒属于痘病毒科、脊椎动物痘病毒亚科,该亚科现有8个属,各属成员对动物的致病作用有明显的差异,但它们构造差异不大。
寻找生命的螺旋 深圳市育才中学 黄俊芳.
课程:机械设计A 祝同学们在新学期学习进步!.
第七章 固 定 资 产.
第五章 传出神经系统药理概论.
第三节 细胞外被与细胞外基质 1、胶原 细胞外被(糖萼)指细胞外覆盖的一层粘多糖(糖蛋白或糖脂)
第五节 微积分基本公式 、变速直线运动中位置函数与速度 函数的联系 二、积分上限函数及其导数 三、牛顿—莱布尼茨公式.
第二节 微积分基本公式 1、问题的提出 2、积分上限函数及其导数 3、牛顿—莱布尼茨公式 4、小结.
专题研讨课二: 数组在解决复杂问题中的作用
行政院國軍退除役官兵輔導委員會 嘉義榮民醫院.
物理学专业 光学实验绪论 主讲人:路莹 洛阳师范学院物理与电子信息学院 2009年3月.
第八章 第一节 日本 邹旭丹 滨河中学初中部 湘教版地理初一年级.
C语言程序设计 课程 第5章 数组 主讲:李祥 博士、副教授 单位:软件学院软件工程系.
第5章 函数与预处理 《 C语言程序设计》 (Visual C++ 6.0环境) 本章导读
函數(一) 自訂函數、遞迴函數 綠園.
第四章 函数和递归.
If … else 選擇結構 P27.
第八章 量子現象 8-3原子光譜.
SOA – Experiment 3: Web Services Composition Challenge
走进编程 程序的顺序结构(二).
中国科学院软件研究所 计算机科学国家重点实验室 张文辉
第二章 Java语言基础.
东北林业大学 陈宇 ACM程序设计 东北林业大学 陈宇
第 4 章 递 归 教学要求 本章重点 了解递归算法的概念与递归设计要领 掌握应用递归算法求解排序与选择、实现排列组合等典型案例
排列组合 1. 两个基本原理 分类加法计数原理 分步乘法计数原理.
第11章 递归 张坤龙 天津大学计算机学院.
2-3 數學歸納法 歸納法 歸納臆測 數學歸納法.
公立學校教職員退休資遣撫卹條例重點說明 苗栗縣政府人事處編製 主講人:陳處長坤榮 107年5月2日.
专题作业.
C语言程序设计 主讲教师:陆幼利.
C语言大学实用教程 第5章 函数与程序结构 西南财经大学经济信息工程学院 刘家芬
第四章习题.
作业情况 已交作业人数:140人 凡是自己没有交过作业的同学,课后留下,有话要说。 2. 文件名范例: 姓名:王树武 wshw_1.c
第三节 常见天气系统.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
第十一章 物件資料結構塑模.
第1章 绪论(二) 教学目标 理解算法的特性及评价标准 掌握算法时间复杂度和空间复杂度的分析方法 1/
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
C程序设计.
第3节  认识简单机械.
資料結構與C++程式設計進階 遞迴(Recursion) 講師:林業峻 CSIE, NTU 6/ 17, 2010.
演算法的效率分析.
1.设A和B是集合,证明:A=B当且仅当A∩B=A∪B
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
第二章 力 §2、1 力.
遞迴 Recursion.
C/C++基礎程式設計班 陣列 講師:林業峻 CSIE, NTU 3/14, 2015.
考察点:switch\while\for System.in\Scanner char vs int
第二次课后作业答案 函数式编程和逻辑式编程
第三章 图形的平移与旋转.
Presentation transcript:

约瑟夫环(递归) 中山职业技术学院 主讲:陈帼鸾 1

假设已知9人游戏,那个位置会赢,那我 是不是就能推出10人游戏赢的位置了? 其实就是寻找(新位置)和(旧位置) 的关系 不难发现: 约瑟夫环 10人游戏 10人游戏 假设n=10人,报数m=3 假设已知9人游戏,那个位置会赢,那我 是不是就能推出10人游戏赢的位置了? 1 0 1 2 3 4 5 6 7 8 9 2 第一轮结束后,序列变为 9 1 3 3 4 其实就是寻找(新位置)和(旧位置) 的关系 0 1 3 4 5 6 7 8 9 8 2 1 5 9人游戏 由于第二轮报数是从3开始,假设我们希望 永远都是0位置先报数,因此可以3为首,形成下方序列 不难发现: ((新位置)+m)%n=(旧位置) 6 3 4 5 6 7 8 9 0 1 3 7 旧位置 9 7 9人游戏 8 +3 ? 对应新位置 4 6 0 1 2 3 4 5 6 7 8 5 新位置

0 (n=1) f(n,m)= (f(n-1,m)+m)%n n>1 约瑟夫环 以n=5,m=3模拟 假设n=10人,报数m=3 int f(int n,int m) { int s; if(n==1) s=0; else s=(f(n-1,m)+m)%n; return s; } int main() int n,m; cin>>n>>m; cout<<f(n,m)<<endl; return 0; f(5,3) 3 4 5 6 7 8 9 0 1 旧位置 3 ( f(4,3) +3)%5 (新位置+m)%n 对应位置 0 1 2 3 4 5 6 7 8 f(4,3) 新位置 f(1,3)=0 ( f(3,3) +3)%4 得出递归表达式: ( f(1,3) +3)%2 0 (n=1) f(3,3) 1 f(n,m)= 1 f(2,3) (f(n-1,m)+m)%n n>1 ( f(2,3) +3)%3

将n阶的问题转化为比n阶小的问题,转化以后的问题与原来的问题的解法是相同的。 (2)寻找一个明确的递归结束条件,称为递归出口。 编写递归程序的关键 (1)构造递归表达式. 将n阶的问题转化为比n阶小的问题,转化以后的问题与原来的问题的解法是相同的。 (2)寻找一个明确的递归结束条件,称为递归出口。 约瑟夫问题 的递归出口是n=1。n从大越变越小,总会结束的。

约瑟夫问题的升级(作业) M只猴子要选大王,选举办法如下:所有猴子按1…M编号围坐一圈,从第1号开始按顺序1,2,…,N报数,凡报到N的猴子退出到圈外,再从下一个猴子开始继续1~ N报数,如此循环,直到圈内只剩下一只猴子时,这只猴子就是大王。给定m和最后一个出圈者的编号,求最小的N? 约瑟夫环问题的一种描述是:编号为1,2,3,…,n的n个人按顺时针方向围坐一圈,每人手持一个密码(正整数)。一开始任选一个整数作为报数上限值,从第一人开始顺时针自1开始顺序报数,报到m时停止报数。报m的人出列,将它的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去直到所有人全部出列为止。试设计程序实现之。 扫一扫