24小时热门版块排行榜    

查看: 3184  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料专硕英一数二306 +6 z1z2z3879 2026-03-18 6/300 2026-03-20 08:49 by xingguangj
[考研] 265求调剂 +7 梁梁校校 2026-03-19 7/350 2026-03-20 08:47 by 无际的草原
[考研] 材料学硕318求调剂 +5 February_Feb 2026-03-19 5/250 2026-03-19 23:51 by 23Postgrad
[考研] 320求调剂0856 +3 不想起名字112 2026-03-19 3/150 2026-03-19 22:53 by 学员8dgXkO
[考研] 招收调剂硕士 +4 lidianxing 2026-03-19 10/500 2026-03-19 16:05 by 余麟余
[考研] 一志愿南昌大学,327分,材料与化工085600 +3 Ncdx123456 2026-03-19 3/150 2026-03-19 13:18 by houyaoxu
[考研] 328求调剂,英语六级551,有科研经历 +3 生物工程调剂 2026-03-17 7/350 2026-03-18 20:41 by Wangjingyue
[考研] 一志愿武理材料305分求调剂 +5 想上岸的鲤鱼 2026-03-18 6/300 2026-03-18 17:53 by 无际的草原
[考研] 295求调剂 +3 一志愿京区211 2026-03-18 5/250 2026-03-18 17:03 by zhaoqian0518
[考研] 085601专硕,总分342求调剂,地区不限 +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[考研] 材料,纺织,生物(0856、0710),化学招生啦 +3 Eember. 2026-03-17 9/450 2026-03-18 10:28 by Eember.
[考研] 290求调剂 +3 p asserby. 2026-03-15 4/200 2026-03-17 16:35 by wangkm
[考研] 材料与化工专硕调剂 +5 heming3743 2026-03-16 5/250 2026-03-17 14:03 by 勇敢太监王公公
[考研] 275求调剂 +4 太阳花天天开心 2026-03-16 4/200 2026-03-17 10:53 by 功夫疯狂
[考研] 278求调剂 +3 Yy7400 2026-03-13 3/150 2026-03-17 08:24 by laoshidan
[考研] 304求调剂 +3 曼殊2266 2026-03-14 3/150 2026-03-16 16:39 by houyaoxu
[考研] 0703化学调剂 290分有科研经历,论文在投 +7 腻腻gk 2026-03-14 7/350 2026-03-16 10:12 by houyaoxu
[考研] 085601材料工程315分求调剂 +3 yang_0104 2026-03-15 3/150 2026-03-15 10:58 by peike
[考研] 288求调剂 +4 奇点0314 2026-03-14 4/200 2026-03-14 23:04 by JourneyLucky
[考研] 304求调剂 +7 7712b 2026-03-13 7/350 2026-03-13 21:42 by peike
信息提示
请填处理意见