找回密码
 注册
Simdroid-非首页
查看: 115|回复: 9

[编程进阶] 关于一个列表的操作

[复制链接]
发表于 2009-3-20 09:47:08 | 显示全部楼层 |阅读模式 来自 北京海淀
本帖最后由 waynebuaa 于 2009-3-20 10:02 编辑

有一个List,{a,b, c, d, e,f}

我想让它变成 {a, a, a, b, b, b, c, c, c, d, d, d,e, e,f,f}

有没有比较简单的方法
发表于 2009-3-20 10:01:50 | 显示全部楼层 来自 加拿大
Simdroid开发平台
可能还是太繁了。
  1. Sort@Join[x = {a, b, c, d, e, f}, x, x[[1 ;; -3]]]
复制代码
回复 不支持

使用道具 举报

 楼主| 发表于 2009-3-20 10:06:07 | 显示全部楼层 来自 北京海淀
谢谢smarten,可惜我不能送你鲜花,也不能给你评分啊
我用到了比较繁琐的ArrayPad,没想到简单的Sort这么强大
回复 不支持

使用道具 举报

发表于 2009-3-20 10:07:02 | 显示全部楼层 来自 山西太原
  1. Flatten[{#, #, #}&/@{a,b,c,d,e,f}]
复制代码
回复 不支持

使用道具 举报

 楼主| 发表于 2009-3-20 10:09:53 | 显示全部楼层 来自 北京海淀
我其实想做的题目是寻找形如
AAABBBCCCDD11
AAABBBCCCDD77 的所有素数

可用Sort似乎很不好移植过来
回复 不支持

使用道具 举报

 楼主| 发表于 2009-3-20 10:28:54 | 显示全部楼层 来自 北京海淀
4# marveloustau

:victory: long time no see
回复 不支持

使用道具 举报

发表于 2009-3-20 13:27:15 | 显示全部楼层 来自 山西太原
不好意思似乎弄错了……似乎确实没有更好的方法
回复 不支持

使用道具 举报

发表于 2009-3-20 18:23:33 | 显示全部楼层 来自 江苏无锡
way 你必须把规律说清楚,为何需要 e f  是两位,其余三位?
回复 不支持

使用道具 举报

发表于 2009-3-20 22:24:50 | 显示全部楼层 来自 美国
好像一共780个。我的方法比较土,
  1. t = Sort@Join[x = {a, b, c, d}, x, x[[1 ;; -2]]];
  2. t1 = Fold[Append, t, {1, 1}];
  3. t2 = Fold[Append, t, {7, 7}];
  4. lists = Permutations[
  5.     Range[0,
  6.      9], {4}][[506 ;; -1]];(*Select 4 numbers for a, b,c, and d. a \
  7. cannot be zero*)
  8. res1 = Select[
  9.    Map[FromDigits,
  10.     Map[t1 /. # &, Map[Solve[{a, b, c, d} == #][[1]] &, lists]]],
  11.    PrimeQ];
  12. res2 = Select[
  13.    Map[FromDigits,
  14.     Map[t2 /. # &, Map[Solve[{a, b, c, d} == #][[1]] &, lists]]],
  15.    PrimeQ];
复制代码
回复 不支持

使用道具 举报

发表于 2013-10-14 13:23:07 | 显示全部楼层 来自 北京西城
  1. {a, b, c, d, e, f}[[Join @@ Table[i, {i, 6}, {3 - Boole[i > 4]}]]]
复制代码
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-3-28 17:28 , Processed in 0.043926 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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