24小时热门版块排行榜    

Znn3bq.jpeg
查看: 3196  |  回复: 4

btx97

金虫 (小有名气)

[求助] 如何辨别数组中的重复元素及其重复次数

我想从一个数组中得出其不重复的元素并给出重复元素的重复次数。 想不到好的办法。来这里请教下,希望知道的或则编过这样的虫友指教下。

问题出自,数值解一元多次方程后对重根情况的后续处理,元素是复数。希望程序简单,有效。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
btx97: 金币+2, ★★★很有帮助, 数值计算中不重复但相近的数值有时会被当作相同的值,所以c++这部分可能不好用。:> 2012-06-15 20:53:34
python可以用一个dict保存
CODE:
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> s = ['a','b','b','c','c','c']
>>> d = [s.count(x) for x in set(s)]
>>> d
[1, 3, 2]
>>> d = {}
>>> for x in s:
        if not x in d.keys():
                d[x] = 1
        else:
                d[x] += 1

               
>>> d
{'a': 1, 'c': 3, 'b': 2}
>>>

如果是c++,一样的思想,因为map(类似于python的dict)要求key必须唯一,所以可以用来检测重复元素
CODE:
int n = 6;
        char s[] = {'a','b','b','c','c','c'};
        map d;
        for (int i=0;i         {
                if (d.find(s[i])==d.end()) d.insert(make_pair(s[i],1));
                else d[s[i]]++;
        }

        map ::iterator it;
        for (it=d.begin();it!=d.end();it++)
        {
                cout << (*it).first << ": " << (*it).second << endl;
        }

测试结果:
CODE:
'a': 1
'b': 2
'c': 3

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2012-06-15 16:16:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

btx97

金虫 (小有名气)

引用回帖:
2楼: Originally posted by libralibra at 2012-06-15 09:16:04
python可以用一个dict保存
Python 2.7.2 (default, Jun 12 2011, 15:08:59)  on win32
Type "copyright", "credits" or "license()" for more information.
>>> s =
...

fortran里有没有这么方便的啊?
3楼2012-06-15 20:38:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★
jjdg: 金币+1, 感谢参与 2012-06-16 22:01:14
btx97: 金币+8, ★★★很有帮助, 没人来讲Fortran。 是不是Fortran用的人太少了哦! 2012-06-30 15:58:41
引用回帖:
3楼: Originally posted by btx97 at 2012-06-15 20:38:06
fortran里有没有这么方便的啊?...

python的dict和c++的map只是提供了一个简单的数据结构
你可以按照人工找重的步骤写个函数实现,数值问题定义个一个epsilon来解决
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
4楼2012-06-16 19:32:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

btx97

金虫 (小有名气)

继续求Fortran的方法,高手帮忙啊
5楼2012-06-18 05:46:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 btx97 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 271求调剂 +28 2261744733 2026-04-11 32/1600 2026-04-13 14:24 by ajpv风雷
[考研] 085600材料与化工,求调剂 +13 won_qii 2026-04-07 13/650 2026-04-13 14:22 by 张zhihao
[教师之家] 转长聘了 +3 简单化xn 2026-04-13 3/150 2026-04-13 14:18 by wwwkkk83
[考研] 一志愿211 0703化学 346分求调剂 +25 土豆er? 2026-04-09 28/1400 2026-04-13 14:14 by 张zhihao
[材料工程] 材料调剂推荐 +9 蛋糕x2 2026-04-07 9/450 2026-04-13 09:07 by lhj2009
[考研] 生物学调剂,一志愿西南大学348,Top期刊一区二作、二区三作,三等奖学金三次 +5 candyyyi 2026-04-09 5/250 2026-04-13 09:02 by 可淡不可忘
[考研] 299求调剂 +8 ZVVZ13 2026-04-08 8/400 2026-04-12 00:40 by 蓝云思雨
[考研] 一志愿211,0703化学305分求调剂 +26 严西西戏 2026-04-06 33/1650 2026-04-11 23:01 by 314126402
[考研] 调剂 +5 文道星台 2026-04-11 5/250 2026-04-11 15:01 by 凯凯要变帅
[考研] 求调剂 +3 胃痉挛累了 2026-04-11 5/250 2026-04-11 14:13 by luhong1990
[考研] 087100初试311求调剂 +4 任雅琴 2026-04-09 4/200 2026-04-11 10:33 by zhq0425
[考研] 机械专硕270求调剂,接受跨专业 +12 老师看看我吧aba 2026-04-09 14/700 2026-04-11 10:21 by laoshidan
[考研] 085506-求调剂-285分 +3 雷欧飞踢 2026-04-08 3/150 2026-04-11 08:37 by zhq0425
[考研] 一志愿211,化学学硕,310分,本科重点双非,求调剂 +17 努力奋斗112 2026-04-06 20/1000 2026-04-11 00:31 by wangjihu
[考研] 本9 一志愿西工大085601 324求调剂 +5 wysyjs25 2026-04-10 5/250 2026-04-10 16:57 by luoyongfeng
[考研] 一志愿京区985,085401电子信息,本科电子信息 +3 阳光开朗的男孩 2026-04-10 3/150 2026-04-10 16:29 by sophia_93
[考研] 求调剂 材料与工程 324分 专硕 +19 翩翩一书生 2026-04-10 21/1050 2026-04-10 11:41 by wp06
[考研] 复试调剂,一志愿郑州大学材料与化工289分 +31 硕星赴 2026-04-08 31/1550 2026-04-09 16:54 by Delta2012
[考研] 286求调剂 +19 Faune 2026-04-08 20/1000 2026-04-09 08:36 by 哦哦123
[考研] 生物学328分求调剂 +9 闪电kkl 2026-04-08 10/500 2026-04-08 21:42 by liuhuiying09
信息提示
请填处理意见