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

[提问] 从1-33中,任取6个数,要求和为102,共有几种取法?

[复制链接]
发表于 2010-4-21 20:42:39 | 显示全部楼层
感觉在mathematica中还可以用IntegerPartition,但一时未找到排除重复元素的良方。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-4-21 22:31:24 | 显示全部楼层
IntegerPartitions[102, {6}, Range[33]] 不排除6个数中有相同者。减小数字输出一下就可看到了。 In[1]:= IntegerPartitions[15, {3}, Range[9]] Out[1]= {{9, 5, 1}, {9, 4, 2}, {9, 3, 3}, {8, 6, 1}, {8, 5, 2}, {8, 4, 3}, {7, 7, 1}, {7, 6, 2}, {7, 5, 3}, {7, 4, 4}, {6, 6, 3}, {6, 5, 4}, {5, 5, 5}}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-4-21 22:34:49 | 显示全部楼层
要从数学上探讨这个问题,最好是把它一般化,所以我专起了一帖。 http://bbs.emath.ac.cn/viewthrea ... %26amp%3Btypeid%3D8
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-4-21 23:11:11 | 显示全部楼层
经过努力,找到了一个效率不错的方法
  1. Select[DeleteDuplicates /@ IntegerPartitions[102, {6}, Range[33]],
  2. Length[#] == 6 &] // Length // Timing
  3. (*DeleteDuplicates 可以替换为Union*)
复制代码
感觉一定还有其他方法,希望大家继续探索。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-4-22 08:17:06 | 显示全部楼层
http://bbs.emath.ac.cn/thread-2251-1-1.html中的算法变换一下就可以了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-4-22 09:11:44 | 显示全部楼层
15# qianyb 好像不是一回事吧
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-4-22 10:11:03 | 显示全部楼层
只不过取的个数一样吧,一个是固定取几个数的加等于某个数,一个是不固定取几个数的和小于等于某个数
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-4-24 23:42:14 | 显示全部楼层
递归即可,我以前写过一个VB代码:http://blog.csdn.net/northwolves/archive/2007/12/03/1912809.aspx
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-4-24 23:48:01 | 显示全部楼层
双色球和值如下: 21 1 22 1 23 2 24 3 25 5 26 7 27 11 28 14 29 20 30 26 31 35 32 44 33 58 34 71 35 90 36 110 37 136 38 163 39 199 40 235 41 282 42 331 43 391 44 454 45 532 46 612 47 709 48 811 49 930 50 1055 51 1202 52 1353 53 1528 54 1710 55 1916 56 2130 57 2372 58 2619 59 2896 60 3181 61 3495 62 3816 63 4170 64 4527 65 4918 66 5314 67 5741 68 6171 69 6635 70 7096 71 7591 72 8083 73 8604 74 9118 75 9663 76 10193 77 10751 78 11293 79 11856 80 12398 81 12962 82 13495 83 14046 84 14565 85 15094 86 15586 87 16088 88 16543 89 17004 90 17418 91 17830 92 18190 93 18549 94 18847 95 19141 96 19376 97 19599 98 19760 99 19912 100 19995 101 20068 102 20076 103 20068 104 19995 105 19912 106 19760 107 19599 108 19376 109 19141 110 18847 111 18549 112 18190 113 17830 114 17418 115 17004 116 16543 117 16088 118 15586 119 15094 120 14565 121 14046 122 13495 123 12962 124 12398 125 11856 126 11293 127 10751 128 10193 129 9663 130 9118 131 8604 132 8083 133 7591 134 7096 135 6635 136 6171 137 5741 138 5314 139 4918 140 4527 141 4170 142 3816 143 3495 144 3181 145 2896 146 2619 147 2372 148 2130 149 1916 150 1710 151 1528 152 1353 153 1202 154 1055 155 930 156 811 157 709 158 612 159 532 160 454 161 391 162 331 163 282 164 235 165 199 166 163 167 136 168 110 169 90 170 71 171 58 172 44 173 35 174 26 175 20 176 14 177 11 178 7 179 5 180 3 181 2 182 1 183 1
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-4-29 22:34:27 | 显示全部楼层
直接从1到33中取6个不同的数,有C(33,6)种取法,然后求和判断是否为102,是的话,N=N+1. 方法比较笨。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-11-23 13:40 , Processed in 0.025258 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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