用4个骰子表示月份和日期
来源:互联网 发布:金山打字通mac版官网 编辑:程序博客网 时间:2024/05/22 15:53
今天我收到来自媳妇儿的礼物,就是这个:
在我看骰子之前,我不确定是不是用2个骰子专门表示月份,用2个骰子专门表示日期。
不知道会不会出现,有1个骰子,有的时候必须用来表示月份,有的时候却又必须用来表示日期,这样的情况。
我看了骰子,是用2个骰子专门表示月份,用2个骰子专门表示日期。
然后仔细一想,其实这个问题并不难。
假如每个月都是30天的话,那么月份和日期是独立的,那么骰子肯定也是独立的,
即用2个骰子专门表示月份,用2个骰子专门表示日期。
复杂一点,如果1、3、5、7、8、10、12月有31天,2、4、6、9、11月有30天
因为有01月31日和03日31日的存在,和上面的情况差别并不大,月份和日期的骰子还是应该独立地设计。
实际情况,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月有29天
虽然大部分的年份中,2月只有28日,但是应当把一年看作一个集合,最后取并集,即2月有29日。
因为有12月30日的存在,所以02月30日的缺少并不能使得日期的约束条件变宽松。
综上所述,肯定是用2个骰子专门表示月份,用2个骰子专门表示日期。
月份是1-12,日期是1-31。
很明显可以表示日期的2个骰子一定可以表示月份,反过来就未必了。
为了方便,上面的2个骰子和下面的2个是一样的。
一方面,方便厂家的制作,另外一方面,方便玩家的使用。
问题又来了,2个骰子要怎么样才能表示1-31呢?
首先,因为有01,02,03......09,所以肯定2个骰子都有0。
同理,2个骰子都有1,都有2。
从另外一个角度来说,因为有11和22,自然是2个骰子都有1,都有2。
所以2个骰子是012***、012***
这么看来,由0和*代表的数字可以组合出03、04、05、06、07、08、09
可是只有6个*,却要表示出这7个数!
于是,唯一的办法就是,将6和9看成是一样的。
所以,最好的方法就是012345、012678
刚好,我的这4个骰子就是这样的2组。
这样就对字体有要求了,必须是那种6倒过来就是9的字体。
有的字体,6倒过来并不像9,这样做出来的2个骰子,自然是不能表示1-31,但是却可以表示1-12
和上面的类似,2个骰子都有0,都有1
所以2个骰子是01****、01****
这么看来,由0和*代表的数字可以组合出02、03、04、05、06、07、08、09
刚好*有8个,所以最好的方法就是012345、016789
- 用4个骰子表示月份和日期
- 获取当前时间的月份和前n个月份 、年份 、日期
- n个骰子的点数和
- 求n个骰子点数的和
- n个骰子 点数和 概率计算
- n个骰子可能的点数和
- n个骰子的和为S
- n个骰子的点数和
- 格式化月份和日期为两位数
- 月份和日期格式化为两位数
- sqlserver截取日期的年份和月份
- sql server 返回2个日期之间的所有月份
- PHP判断两个日期之间相差多少个月份
- 使用SimpleDateFormat可以获取给定日期的年份、月份、日期和月份
- n个骰子朝上面所有和的概率
- n个骰子点数和及各自出现的概率
- 剑指offer40--n个骰子点数和的概率
- 第一个骰子游戏
- 使用C语言进行面向对象的开发--GObject入门[8]
- 我的第一个shader程序
- &与&&有什么区别?
- LeetCode #96 Unique Binary Search Tree
- RequireJS - 用法
- 用4个骰子表示月份和日期
- 自动装箱与拆箱
- Shader山下(十七)语义Semantic
- select 下拉框和下拉列表美化
- Spring之IOC
- 解决android4.4以后 媒体库打开闪退的问题
- java命令执行jar包(里面的main函数,无web.xml文件)的方式(包括依赖其它的jar包),使用Google-Guava Concurrent包里的Service框架,maven工程
- 网游服务器使用UDP的原因
- Linux下 VI编辑器常用操作