扑克问题的研究

来源 :中国教育发展研究 | 被引量 : 0次 | 上传用户:a395744775
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】文中分析了扑克原始排序与按一定规律发出扑克的顺序的相互关系,运用数据结构知识,进行了算法分析,并运用C语言编程求解。最大的特色在于将扑克问题准确、巧妙地抽象为数组问题,利用计算机模拟实现发牌过程,使得问题求解更加简便,增强了问题的可操作性。
  【关键词】数据结构 循环链表 存储
  
  Research on the playing cards
  Qiao Weiping Qing Liang
  【Abstract】In this article, the writer has analyzed the relation between the primordial order of the playing cards and the order of the playing cards sent according to a stated rule, analyzed the algorithm and got a solution applying the computer programming language C. The biggest character is you must abstract the playing cards problem correctly and cleverly as the array problem and then make use of the computer simulation to actualize the course of distributing the playing cards, doing which can make the problem solved easier and also has strengthened the maneuverability of the problem.
  【Keywords】Data structure Circle chain list Memory
  
  1.问题提出。编号为1,2,3,…,n的n张扑克牌按顺序叠在一起,现将牌最上面一张(编号为1)发出,将下一张(编号为2)放在这叠牌的最下面,再将下一张(编号为3)发出,依此类推,直至发完所有牌。试回答下面的问题:(1)最后一张是什么牌?特别地,当n=13,54,1000时,结果分别是什么?(2)如果想发出的牌刚好是1,2,3,…,n这样一个顺序,问原来的牌是怎样排列的?特别地,当n=13,54时,牌具体是怎样排列的?
  
  2.问题分析与算法思想。对于问题(1),我们分析题给发牌规律发现,可等效为如下过程:
  Step1:定义一个数组a[n],其数组首尾相连,形成环状,共n个元素,初始化为1,2,3,…,n;
  Step2:从首位取出第一个元素,然后跳过一个非零元素取出下一个非零元素,将已被取出的元素标记其值为0;
  Step3:从剩余的元素中继续跳过一个非零元素取出下一个非零元素,将已被取出的元素标记其值为0;
  Step4:如此重复,直至取出最后一个非零元素;
  Step5:取出的最后一个元素即为最后发出的那一张扑克牌的编号。
  因此,我们解决了这样的一个从数组中取出元素的问题,就等同解决了第一个扑克问题,而这样的数组问题是可以通过C语言的编程实现的。
  对于问题(2),很显然这与第一个问题发牌的过程是互逆的,我们依然把这个问题转换成数组来考虑。
  Step1:定义一个数组a[n],其数组首尾相连,形成环状,共n个元素,均初始化为0;
  Step2:将第一个元素赋值为1,然后跳过一个零元素为下一个零元素赋值为2;
  Step3:在剩余的元素中继续跳过一个零元素为下一个零元素顺序逐次赋值为3、4、5…;
  Step4:如此重复,直至赋完最后一个元素值为n;
  Step5:得到的数组元素的排序即为所求的扑克原始排序。
  因此,我们解决了这样的一个为数组元素赋值的问题,就等同解决了第二个扑克问题,而这样的数组问题同样是可以通过C语言的编程实现的。
  


  3.算法流程图。
  


  说明:问题2的算法实现与问题1互为逆过程,其算法流程图这里从略。
  
  4.程序与运行结果。于是,根据算法流程图,我们设计了实现算法的C程序,实现了对任意数目的扑克牌按照题给规律发出的最后一张扑克牌的编号的求解,程序代码及运行结果如下:
  问题(1)的C程序代码:
  #include
  void main()
  {int i,n,j,sign,a[10000];/*sign记录跳过的位置数*/
  printf("请输入扑克的最大编号:\n\n");
  scanf("%d",&n);
  printf("\n发牌的顺序如下:\n",n);
  /*初始化数组,亦即给牌编号*/
  for(i=0,j=0;i  a[i]=i+1; /*编号1,2,3…,n*/
  sign=1; /*初始化sign*/
  /*初始化sign*/
  for(i=0;;)
  {
  if(a[i]) sign++; /*找到下一个非零数跳过*/
  if(sign==2)
  
  {printf("%3d",a[i]); /*当找到第二个非零值时输出*/
  a[i]=0; /*输出后该位置标记为0*/
  sign=0; /*同时sign有从零开始计数*/
  ++j; /*记录输出数值的个数*/
  }
  if(++i==n) i=0; /*查找到末尾时返回起点*/
  if(j==n-1) break; /*当所有数值全部输出时终止*/
  }
  /*输出最后一个数值,亦即最后一张牌*/
  for(i=0;i  if(a[i])
  printf("\n最后一张牌是:\t%3d\n\n",a[i]);
  }现仅给出n=13时的运行结果,其他结果从略:
  


  
  参考文献
  1 姜启源等编.大学数学实验[M].北京:清华大学出版社,2005.2
  2 谭浩强编.C程序设计(第三版).北京:清华大学出版社, 2006.6
  3 郑莉等编著.C++语言程序设计(第3版).北京:清华大学出版社,2006.6
其他文献
摘要 新课改提出,教学不只是单向、封闭、静态的知识传授过程,而是师生多向、开放和动态的对话、交流过程,而这种多向、开放和动态的对话、交流过程意味着更多的生成与预设。预设与生成是语文课堂教学中“静”与“动”的对立与统一,如何准确理解两者之间辨证而统一的关系,又如何在具体的教学实践中科学地把握、艺术地处理这种关系,就成为我们教师迫切需要关注和研究的重要问题。  关键词 初中语文 课堂教学 预设 生成 
期刊
信息技术与英语学科整合,是当前现代信息技术教育普及过程中的一个热点,也是全面实施素质教育、培养学生创新意识和实践能力的重要手段。目前,我区在信息技术与英语学科整合方面,进行了一些实践和探索,取得了一定成效,如学生的主动参与、自主探究能力增强了,师生关系更加融洽了等。但仍存在着一些不足之处,针对一些共性问题,特提出几点建议,共同商榷。
期刊
摘要 语文是思维的艺术,它蕴涵着丰富的人丈精神和丈化底蕴,所以语文教师要张扬语文魅力,善待语文,提高学生的语文素养。语文素养直接影响学生的思维深度与广度,所以学生语文素养的提升,对于走进语文,融入语文、嗜好语文显得多么重要。语文素养不仅表现为较强的阅读能力、作文能力、口语交际能力,而且表现为较强的综合运用能力和一定的语言文化积淀。就我个人而言,我重点从阅读这一领域来升华孩子的语文素养。①通过阅读教
期刊
摘要 随着课程改革的逐步深入,中等职业教育的不断发展,尝试教学法被运用到中职教学中。本文以尝试教学法在中职地理教学中的应用为基点,指出中职地理教学中存在的问题,并对相应的教学模式进行探讨,  关键词 中职地理教学 职业教育 尝试教学法    随着课程改革的逐步深入,中等职业教育的不断发展,传统的学科体系下建立起来的“讲授——接受”课程教学方法,在实施过程中已经不太适应中职教学。为提高中职学校的教学
期刊
摘要 变压器因出口短路会发生损坏的情况。文章阐述了变压器在发生短路故障时,其损坏的几种特征及产生的原因,  关键词 变压器 短路    1 轴向失稳。这种损坏主要是在辐向漏磁产生的轴向电磁力作用下,导致变压器绕组轴向变形,该类事故占整个损坏事故的52.9%。  1.1 线饼上下弯曲变形。这种损坏是由于两个轴向垫块间的导线在轴向电磁力作用下,因弯矩过大产生永久性变形,通常两饼间的变形是对称的。  1
期刊
摘要 在初中物理教学中,通过不断创设问题情境,激发学生的探求精神;通过创设成功的情境,使学生感受到获得成功的喜悦,调动学生学习的积极性。同时创设问题情境可以把抽象的问题具体化,深奥的道理形象化,枯燥的知识趣味化,从而激发学生发现问题的欲望和探究问题的热情,为学生发现问题和探究问题创造条件。因而在新课程标准下,问题情境有其更广阔的天地,创设成功的问题情境可以使新课标的三维目标“知识与技能、过程与方法
期刊
摘要 个性化作文也可以简单地理解为非常富有新意的作文,即不是传统的普通的千篇一律、老生常谈的作文。那么怎样才能写出这样富有个性化的文章来呢?笔者就这一问题谈几点方法和技巧。  关键词 个性化作文 个性化标题 个性化选材 个性化立意 个性化文体 个性化构思 个性化语言    个性化作文也可以简单地理解为非常富有新意的作文,即不是传统的普通的千篇一律老生常谈的作文。那么怎样才能写出这样的文章来呢?笔者
期刊
摘要 一篇漂亮的中考作文应像一位靓丽的姑娘一一她应该有一对有神的眼睛,一张娇美的脸蛋,一颗美好的心灵,一副丰满的身段,一身得体的衣裳,一双健美的腿脚。这样的姑娘就会人见人爱,这样的作文就会获得满分。因此,要把中考作文写得靓丽,就必须拟好题目、作好开头、定好主题、写好中间、用好语言、收好结尾。  关键词 中考作文 写得漂亮 形神并茂    一篇漂亮的中考作文应像一位靓丽的姑娘——她应该有一对有神的眼
期刊
【摘要】笔者结合学习科学发展观体会和工作经验,就高校如何进一步加强毕业生就业服务工作进行了探讨。  【关键词】科学发展观 毕业生 就业 服务       高校毕业生就业问题,关系国家经济建设、社会稳定和人民群众的根本利益,关系高等教育的持续、健康、协调发展,关系我们党的执政能力建设。党的十七大会议作出了“优先发展教育,建设人力资源强国”的重大决策,明确提出了“积极做好高校毕业生就业工作”的要求,充
期刊
摘要 要让学生学好物理,首先应培养学生学习物理的兴趣,这是提高教学质量的关键。联系生活和生产实际,加强实验教学,以及教师授课时良好的教学艺术是激发学生学习兴趣的有效手段。  关键词 物理教学 兴趣培养    俗话说“兴趣是最好的老师”,浓厚的兴趣将是人们刻苦钻研、勇于攻关的强大动力。学生要学好物理,首先要培养学生学习物理的兴趣。“知之者不如好之者,好之者不如乐之者”。一个人一旦对学习产生兴趣,就会
期刊