找回密码
 欢迎注册
楼主: KeyTo9_Fans

[原创] 猜排列问题

[复制链接]
发表于 2012-4-5 11:45:06 | 显示全部楼层
Permutations\::outmem: "The result of evaluating Permutations[{1,2,3,4,5,6,7,8,9,10,11}] would have 1756339200 bytes, which does not fit in available memory"
n=11我算不了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-4-5 11:54:53 | 显示全部楼层
我是真的忘了Mathematica里的注释符。见笑啊
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-4-5 12:18:48 | 显示全部楼层
10多分钟了,n=11还没有算出来。
hujunhua 发表于 2012-4-5 11:32

这个很正常,排序太多了。
所以对于n大一些,还得用我的方法,可以先用某些排序去过滤。要不然先随机产生n个排序吧。然后再次根据前面这些序列的结果,穷举余下的序列。如果余下序列数目不多了,就可以继续用你的方案了。其实后面部分同数独程序的搜索挺类似的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-4-5 13:25:03 | 显示全部楼层
29# hujunhua

那是我公司用的机子。
最开始是我个人用的,
后来改成android每日构建的服务器啦,
我现在用的机子是dell optilex 980,也还行。
可我不敢随便安装D版软件啊~~
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-4-5 13:30:16 | 显示全部楼层
32# hujunhua
Mathematica一半都是用 (**)来注释的。
但自从见到了老大的注释,我觉得用字符串语句来当做注释更简洁!
老大的创意,我不得不赞啊!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-4-5 13:31:58 | 显示全部楼层
31# hujunhua
哇,光Mathematica程序就要近2G的内存呢,
老大的机子难道低于2G内存吗

评分

参与人数 1经验 +2 收起 理由
hujunhua + 2 也就2G,这几天还老歇菜

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-4-5 15:06:37 | 显示全部楼层
谢谢wayne提醒,这回记住不会忘了。
我那样注释是要费编译的吧,不知道运行的时候会不会有影响。要是记得注释符谁用这种憨招,我说过不会编程的,这哈真是贻笑大方啊。

连注释都不会,还敢贴程序,哎呀呀,笑死人了。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-4-5 17:16:56 | 显示全部楼层

策略的存在性

将23#的那个程序的第7、8行中的1换成-1,就成了选猜每组的最末一个排列。这是显示策略存在的最简陋方法了。 运行结果如下:
  1. 牌张数n=4,最多次数=6,频数分布为{1,3,6,8,5,1}
  2. 期望次数为3.66667
复制代码
  1. 牌张数n=5,最多次数=8,频数分布为{1,4,13,34,48,15,4,1}
  2. 期望次数为4.58333
复制代码
  1. 牌张数n=6,最多次数=10,频数分布为{1,5,21,74,182,257,152,25,2,1}
  2. 期望次数为5.71389
复制代码
  1. 牌张数n=7,最多次数=12,频数分布为{1,6,30,130,437,1057,1629,1278,403,63,5,1}
  2. 期望次数为6.96448
复制代码
  1. 牌张数n=8,最多次数=13,频数分布为{1,7,41,207,858,2802,6819,11059,11024,5816,1502,170,14}
  2. 期望次数为8.29348
复制代码
  1. 牌张数n=9,最多次数=15,频数分布为{1,8,53,308,1508,6076,19638,47782,84144,99069,70190,27666,5737,664,36}
  2. 期望次数为9.6495
复制代码
  1. 牌张数n=10,最多次数=18,频数分布为{1,9,67,434,2416,11530,45552,144850,360692,676529,911952,823005,462812,155340,30123,3308,176,4}
  2. 期望次数为11.0723
复制代码
貌似策略对期望次数的影响不大,但是对最多次数的影响不小。为了方便对比,将前面的结果转过来。
  1. 牌张数n=4,最多次数=6,频数分布为{1,3,6,8,5,1}
  2. 期望次数为3.66667
复制代码
  1. 牌张数n=5,最多次数=8,频数分布为{1,4,13,30,46,19,5,2}
  2. 期望次数为4.69167
复制代码
  1. 牌张数n=6,最多次数=11,频数分布为{1,5,21,72,162,239,152,47,17,3,1}
  2. 期望次数为5.88889
复制代码
  1. 牌张数n=7,最多次数=12,频数分布为{1,6,30,125,401,980,1536,1343,513,91,11,3}
  2. 期望次数为7.07698
复制代码
  1. 牌张数n=8,最多次数=14,频数分布为{1,7,41,203,796,2589,6466,11028,11110,6086,1676,281,32,4}
  2. 期望次数为8.36012
复制代码
  1. 牌张数n=9,最多次数=20,频数分布为{1,8,53,300,1410,5594,18184,46623,84433,99460,70393,28932,6513,829,106,31,6,2,1,1}
  2. 期望次数为9.69137
复制代码
  1. 牌张数n=10,最多次数=20,频数分布为{1,9,67,427,2288,10679,41849,137055,354588,678128,909649,819130,470281,165028,34577,4515,491,36,1,1}
  2. 期望次数为11.1053
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-4-5 17:29:00 | 显示全部楼层
为了更好地观察策略的影响程度,最好是将1或者-1取成一个小组长度范围内的随机整数。但是不可两行都用随机函数,怎么将第7行的随机数传给第8行,有点费周折。
Wayne, 给想想辙?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-4-6 10:53:55 | 显示全部楼层
39# hujunhua
随机的产生某一序列的其中一个排列,可用RandomSample 函数。
随机的取出某一序列的其中一个元素,可用RandomChoice函数,

针对老大的提的问题,可以将随机数先存到某个变量里面,然后后面再引用这个变量的值,不知是否答对了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-19 13:14 , Processed in 0.042388 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表