智游城

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2521|回复: 6
打印 上一主题 下一主题

数学题

[复制链接]
跳转到指定楼层
1#
老陈 发表于 2013-9-9 18:14:33 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Sudoku挺好玩儿的。
9x9=81个格填满,很漂亮。
谁知道填满后的图形总共有多少种?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏
2#
 楼主| 老陈 发表于 2013-9-11 13:05:10 来自手机 | 只看该作者
昨天在赌场打牌,玩手机想出这个题目。原以为几个数乘一乘就能得到结果,实际不是这样,因为变化太多,最后结果应该是一个天文数字,这个数字现在我也没算出来,肯定超过2^64,因为我用计算机编程序计算,累加结果的无符号长整型的变量溢出,20分钟的运行得到这个结果。再想其它办法吧,真是自找麻烦。
3#
maomaobiao 发表于 2013-9-11 13:13:23 | 只看该作者
老陈 发表于 2013-9-11 15:05
昨天在赌场打牌,玩手机想出这个题目。原以为几个数乘一乘就能得到结果,实际不是这样,因为变化太多,最后 ...

Sudoku is very very complicate, as well as addictive.

Be very careful to fool around with.

Given any one valid Sudoku puzzle that has one only solution, there is a program to solve it. This was achieved by Japanese (if I remember correctly).

However, there is no solution to "build" a random valid Sudoku puzzle so far. It is even more complicated than the solution itself.
4#
 楼主| 老陈 发表于 2013-9-12 01:54:56 来自手机 | 只看该作者
本帖最后由 老陈 于 2013-9-11 15:40 编辑

计算溢出的问题解决了,当变量的值大于10^18时,在这个变量里减去10^18,另一个变量加1,用两个变量表示累加结果,不过这样处理会降低效率。

再说计算思路:
为了叙述方便,我们把81个单元格的名字写成Crc形式,其中C是单元格的意思,r代表单元格所在的行,c代表单元格所在的列。

取一张空白表,C11有9种数字可填,C12有8种数字可填,
C13:7
C14:6
...
C19:1

C21:6
C22:5
C23:4
C31:3
C32:2
C33:1
C41:6


C24麻烦
当C14,C15,C16与C21,C22,C23都不同时C24有3种选择,有一个相同时有4种选择,有两个相同时有5种选择,有3个相同时有6种选择。用类似的办法找其它单元格的可填数字数,相乘再累加就得到基本图形集合的元素数:5,472,730,538。

每个图形第1到第3行可以互换,第4到第6,第7到第9也一样,列也一样,行列互换,旋转和翻转也可以。这样可以从基本图形中派生才更多图形。这些图形有重复,把它们去掉,得到结果如下:
6,670,903,752,021,072,936,960

结果有待于验证,我非常自信的是数量级肯定没问题。


5#
maomaobiao 发表于 2013-9-12 08:56:02 | 只看该作者
老陈 发表于 2013-9-12 03:54
计算溢出的问题解决了,当变量的值大于10^18时,在这个变量里减去10^18,另一个变量加1,用两个变量表示累 ...

order of magnitude is right if I remember correctly.

The actual result seemed a little bit smaller than yours here, not so sure. Wiki....
6#
maomaobiao 发表于 2013-9-12 08:58:42 | 只看该作者
老陈 发表于 2013-9-12 03:54
计算溢出的问题解决了,当变量的值大于10^18时,在这个变量里减去10^18,另一个变量加1,用两个变量表示累 ...

Have you consider the duplicates when you "flip" the large square?

for example,   1  2                        2  4    are equivalent for a 2x2 square.
                     3  4                        1  3
7#
 楼主| 老陈 发表于 2013-9-12 09:26:58 来自手机 | 只看该作者
maomaobiao 发表于 2013-9-11 18:58
Have you consider the duplicates when you "flip" the large square?

for example,   1  2            ...

你的例子我认为后一个是前一个派生出来的。
在我的结果中把它们数成2个。
如果不考虑派生,前面那个10位数应该是准确答案。
后面那个22位数的答案是把所有派生出来的都计算在内了,是否把完全相同的一个结果多次计算,我拿不很准,但我写的程序计算4x4的结果准确,用来计算9x9的应该问题不大。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|智游城论坛

GMT+8, 2024-11-24 11:25 , Processed in 0.044464 second(s), 7 queries , Redis On.

Powered by Discuz! X3.2

© 2001-2012 Comsenz Inc.

返回顶部