有时我们做万年历程序时涉及十二生肖的排列顺序及相关算法问题,这里总结一下:

算法:
年份减3除以12,余数则是对应的十二生肖序号, 如果余数为0,序号计为12。然后根据以下口诀得到生肖:

一鼠二牛三虎四兔走,
舞龙六蛇七马八羊头。
九猴十鸡幺幺数狗狗。
十二金猪排列到最后。

按地支及生肖的口诀:
子鼠丑牛寅虎卯兔走,
辰龙巳蛇午马未羊头。
申猴酉鸡之后戍狗狗,
亥属金猪排列到最后。

注:以上口诀(也可说是十二生肖的顺口溜吧),是我读高中时瞎编的,不过至今仍记得,转载请注明出处 :)

还有一个关于十二生肖的顺口溜
(貌似儿歌,可教给小孩子的,嘿嘿!):

小老鼠,打头来,牛把蹄儿往上抬。
老虎回头一声吼,兔脚一蹬跑得快。
龙和蛇,尾巴甩,马啸羊儿大步迈。
小猴机灵蹦又跳,雄鸡一唱天下白。
狗儿跳,猪儿叫,老鼠接着跟上来。
十二动物转圈跑,一二三四按序排。

附:十二生肖属相年份对照表(农历1900-2103年)
鼠1900 牛1901 虎1902 兔1903 龙1904 蛇1905 马1906 羊1907 猴1908 鸡1909 狗1910 猪1911
鼠1912 牛1913 虎1914 兔1915 龙1916 蛇1917 马1918 羊1919 猴1920 鸡1921 狗1922 猪1923
鼠1924 牛1925 虎1926 兔1927 龙1928 蛇1929 马1930 羊1931 猴1932 鸡1933 狗1934 猪1935
鼠1936 牛1937 虎1938 兔1939 龙1940 蛇1941 马1942 羊1943 猴1944 鸡1945 狗1946 猪1947
鼠1948 牛1949 虎1950 兔1951 龙1952 蛇1953 马1954 羊1955 猴1956 鸡1957 狗1958 猪1959
鼠1960 牛1961 虎1962 兔1963 龙1964 蛇1965 马1966 羊1967 猴1968 鸡1969 狗1970 猪1971
鼠1972 牛1973 虎1974 兔1975 龙1976 蛇1977 马1978 羊1979 猴1980 鸡1981 狗1982 猪1983
鼠1984 牛1985 虎1986 兔1987 龙1988 蛇1989 马1990 羊1991 猴1992 鸡1993 狗1994 猪1995
鼠1996 牛1997 虎1998 兔1999 龙2000 蛇2001 马2002 羊2003 猴2004 鸡2005 狗2006 猪2007
鼠2008 牛2009 虎2010 兔2011 龙2012 蛇2013 马2014 羊2015 猴2016 鸡2017 狗2018 猪2019
鼠2020 牛2021 虎2022 兔2023 龙2024 蛇2025 马2026 羊2027 猴2028 鸡2029 狗2030 猪2031
鼠2032 牛2033 虎2034 兔2035 龙2036 蛇2037 马2038 羊2039 猴2040 鸡2041 狗2042 猪2043
鼠2044 牛2045 虎2046 兔2047 龙2048 蛇2049 马2050 羊2051 猴2052 鸡2053 狗2054 猪2055
鼠2056 牛2057 虎2058 兔2059 龙2060 蛇2061 马2062 羊2063 猴2064 鸡2065 狗2066 猪2067
鼠2068 牛2069 虎2070 兔2071 龙2072 蛇2073 马2074 羊2075 猴2076 鸡2077 狗2078 猪2079
鼠2080 牛2081 虎2082 兔2083 龙2084 蛇2085 马2086 羊2087 猴2088 鸡2089 狗2090 猪2091
鼠2092 牛2093 虎2094 兔2095 龙2096 蛇2097 马2098 羊2099 猴2100 鸡2101 狗2102 猪2103

如果你对这方面的诗词感兴趣,不妨再看看此文:
[图]十二生肖开运诗词 http://21cn.aqioo.com/article/13843,view.html

十二生肖与十二时辰:
    古人根据太阳升起的时间,将一昼夜区分为十二个时辰,用十二地支为代号,方便熟记。 中国用地支计时法,叫做十二时辰(“大时”),也就是我们现在所称的二十四“小时”。
    十二生肖是由十一种来自自然界的动物: 鼠、牛、虎、兔、蛇、马、羊、猴、鸡、狗和猪,还有传说中的龙所组成的。古人以这十二种动物的习性来为分配各个地支, 例如:老鼠是夜间活动的动物,因此以子时(午夜11时至1时)配合鼠,都和当时农业社会的生活起居作习息息相关。

生肖和时辰是如何相对应的呢?以下仅供参考:
子(鼠)午夜23时至1时:在一日中,子时一天的最后时刻,也是新一天的开始。
丑(牛)凌晨1时至3时:丑时指的是黎明前的黑暗阶段。据说是牛开始日出耕田的时刻。
寅(虎)凌晨3时至5时:在一日中, 天方大白之时,正是老虎开始活动的时刻。
卯(兔)清晨5时至7时:卯时是太阳已东升,开始放万丈光芒的时候。
辰(龙)清晨7时至9时:辰时太阳光热增强时刻,据说是群龙行西的时刻。
巳(蛇)上午9时至11时,巳时太阳光热更强了。
午(马)上午11时至下午13时,在一日中,阳光最为猛烈。
未(羊)下午13时至15时:在一日中, 未时是暑气将消之时。
申(猴)下午15时至17时:在一日中,申时的暑气已快过去了。
酉(鸡)下午17时至晚上19时:在一日中,酉时是夜晚将来临的时刻。
戍(狗)晚上19时至21时:在一日中,戌时正是黑夜扩散,华灯初上时分。
亥(猪)晚上21时至午夜23时:在一日中,亥时是一日将尽,要迈向明日之前时分。

两则小故事:
(1)为什么有属老鼠的,没有属猫的呢?
    你知道自己属什么吗?为什么有属老鼠的,没有属猫的呢?这里有个故事。很久很久以前,有一天,人们说:“我们要选十二种动物作为人的生肖,一年一种动物。”天下的动物有多少呀?怎么个选法呢?这样吧,定好一个日子,动物们来报名,就选先到的十二种动物为十二生肖。猫和老鼠是邻居,又是好朋友,它们都想去报名。猫说:“咱们得一早起来去报名,可是我爱睡懒觉,怎么办呢?”老鼠说:“别着急,别着急,你尽管睡你的大觉,我一醒来就去叫你,咱们一块儿去。”猫听了很高兴,说:“你真是我的好朋友,谢谢你了。”到了报名那天早晨,老鼠早就醒来了,可是它光想到自己的事,把好朋友猫的事给忘了。就自己去报名了。结果,老鼠被选上了。猫呢?因为睡懒觉,起床太迟,等它赶到时,十二种动物已被选定了。 猫没有被选上,就生老鼠的气,怪老鼠没有叫它,从这以后,猫见了老鼠就要吃它,老鼠就只好拼命地逃。一直到现在还是这样。      
(2)怎么让小小的老鼠排在第一名呢?
    十二生肖的顺序是:鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪。怎么让小小的老鼠排在第一名呢?这里也有个故事。报名那天,老鼠起得很早,牛也起得很早。它们在路上碰到了。牛个头大,迈的步子也大,老鼠个头小,迈得步子也小,老鼠跑得上气不接下气,才刚刚跟上牛。老鼠心里想:路还远着呢,我快跑不动了,这可怎么办?它脑子一动,想出个主意来,就对牛说:“牛兄弟,牛兄弟,我来给你唱个歌。”牛说:“好啊,你唱吧---咦,你怎么不唱呀?”老鼠说:“我在唱哩,你怎么没听见?哦,我的嗓们太细了,你没听见。这样吧,让我骑在你的脖子上,唱起歌来,你就听见了。”牛说:“行罗,行罗!”老鼠就沿着牛腿子一直爬上了牛脖子,让牛驮着它走,可舒服了。它摇头晃脑的,真的唱起歌来:牛兄弟,牛兄弟,过小河,爬山坡,驾,驾,快点儿罗!牛一听,乐了,撒开四条腿使劲跑,跑到报名的地方一看,谁也没来,高兴得昂昂地叫起来:“我是第一名,我是第一名!”牛还没吧话说完,老鼠从牛脖子上一蹦,蹦到地上,吱溜一蹿,蹿到牛前面去了。结果是老鼠得了第一名,牛得了第二名,所以,在十二生肖里,小小的老鼠给排在最前面了。

万年历程序中十二生肖排列顺序及算法相关推荐

  1. 在一个程序中什么算是亮点_算法的五个重要特性是

    算法的五个特征是?如题 1.有穷性: 一个算法必须保证执行有限步之后结束: 2.确切性: 算法的每一步骤必须有确切的定义: 3.输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是 ...

  2. 如何制作一条网线?(双绞线在水晶头中的排列顺序)

    请先看这篇文章:                        本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客 一.需要的材料和工具 网线.水晶头若干(需要多准备几个). ...

  3. 关于Johnson-Trotter和字典序排列在《算法设计与分析基础》中的论述

    这是我在看书时看到的,开始看的时候觉得不理解,后来看了两遍觉得豁然开朗,分享给大家.加了点我自己的理解,希望大家觉得有帮助. 对于n的较小值来说,不用生成排列的方式来得到n个元素的相同次序的排列是有可 ...

  4. C语言编程>第二十三周 ③ 下列给定程序中,函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序;然后把第三字符插入

    例题:下列给定程序中,函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序.插入法的基本算法是:先对字符串中的头两个元素进行排序:然后把第三字符插入到前两个字符中,插入后前三个字 ...

  5. 程序员面试题精选100题(07)-翻转句子中单词的顺序[算法]

    题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入"I am a student.", ...

  6. 让你提前认识软件开发(14):程序中的算法

    第1部分 又一次认识C语言 程序中的算法 [文章摘要]         算法(Algorithm),是程序的灵魂.著名计算机科学家.图灵奖获得者沃思曾提出过一个公式:数据结构+算法=程序. 可见,算法 ...

  7. Windows运行多个相同程序时,其任务栏图标排列顺序可能发生改变

    正常情况下,Windows 7任务栏中显示图标的顺序是按照程序打开的先后顺序进行从左至右的排列. 但是在运行多个如<魔兽世界>之类的大型程序时,其任务栏图标的排列顺序可能会发生改变,导致先 ...

  8. python中按照文件夹中文件的排列顺序读取文件内容,python文件显示和windows目录显示一致

    原创 python中按照文件夹中文件的排列顺序读取文件内容 2018-12-06 11:49:18 途径北海道 阅读数 3891 更多 分类专栏: python 版权声明:本文为博主原创文章,遵循 C ...

  9. VC中设置程序窗口的排列层级

    1. topmost窗口和non-topmost窗口 Windows中的应用程序窗口,可以按照显示效果分为topmost和non-topmost两类.top-most类型的窗口,显示时位于non-to ...

  10. 对顺序表中元素从小到大排序的算法

    )编写一个对顺序表中元素从小到大排序的算法,函数接口如下: //初始条件:线性表L已经存在,且元素个数大于1 //操作结果:将L中的元素从小到大排序 Status ListSort_Sq(SqList ...

最新文章

  1. 配置 Cisco ASA Static IP Addressing or DHCP for IPSec ××× Client
  2. mysql8.0client_navicat 连接mysql8.0 报错client does not support authentication
  3. vue之父子组件通信
  4. 如果只看一篇文章弄懂Pfile与spfile,那么这篇就够了……
  5. linux主机解析虚拟机超时_Linux 内核超时导致虚拟机无法正常启动
  6. 【openssl】利用openssl完成X509证书和PFX证书之间的互转
  7. TFS在项目中DevOps落地进程(下)
  8. Candidate sampling:NCE loss和negative sample
  9. 【script】python通过字符串调用方法
  10. linux生成随机密码的十种方法
  11. C#基础知识五之abstract virtual关键字
  12. 韩立刚《计算机网络》| 第5章 传输层
  13. Python的三个引号作用
  14. 【蓝桥杯】第十三届蓝桥杯省赛 AK 攻略 —— C++ B组全真题超详细剖析
  15. canvas教程13-使用图片
  16. linux系统玩ps3模拟器下载地址,【RPCS3模拟器】RPCS3模拟器下载(PS3模拟器) 电脑版-开心电玩...
  17. windows 下连服务器
  18. react核心精讲视频与实战教程
  19. 探戈 - 维基百科,自由的百科全书
  20. Java 这一年都经历了什么?

热门文章

  1. sqlmap挂马命令
  2. 双缓冲技术解决java游戏图片闪现问题
  3. 电脑上怎么截图按什么键?电脑截图的快捷键是什么?
  4. Python str转为list list转为str
  5. vim设置自动保存快捷键、执行当前正在编写的Shell脚本快捷键
  6. office2010 启动man_解决word2010启动慢的两种方法
  7. word 添加手写签名
  8. 博客线下推广的小技巧
  9. c++十六进制加法_16进制数之间的加法
  10. iOS系统上使用iTunes将iPhone或iPad备份到外接移动硬盘