快来得分

upstream 2000-06-28 12:06:00
从外围硬件输入一个数据流,存为一个数组,比如int nnn[]={10,30,9,32,11,38...}
注意:在该数组中,元素可分为两类:大数和小数,并满足以下两点:
1 小数围绕着某一平均值,误差不超过20%;
2 大数约等于小数的3倍;
但是,对应于每一次输入,即每一个具体的数组,小数的平均值是不固定的。
请问:怎样把nnn数字化,整理成0,1,0,1,0,1...这样的二进制流。
...全文
186 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
茂奇软件 2000-07-03
  • 打赏
  • 举报
回复
Tyro的答案很对,不过是nnn[j]>nnn[i]*1.5才对,而且当有数处于nnn[i]*1.5和已nnn[i]*3该怎么办???
Erlin 2000-07-03
  • 打赏
  • 举报
回复
Tyro的答案很对,不过是nnn[j]>nnn[i]*1.5才对,而且当有数处于nnn[i]*1.5和已nnn[i]*3该怎么办???
Tyro 2000-07-03
  • 打赏
  • 举报
回复
如果都是大数或都是小数是不能确定的,除非小数足够小
如果有大数也有小数,那么可以这样:
先取出nnn中最小数nnn[i],然后用nnn[i]和其他的数nnn[j]进行比较,如果
nnn[j]>nnn[i]*1.4,则nnn[j]是大数,否则是小数

x86的算法是有问题的
upstream 2000-06-29
  • 打赏
  • 举报
回复
raining:
你理解的很对。
x86:
“假定nnn[0]是小数,只到有一个数nnn[i]与nnn[0]的差的绝对值足够大(大于40%),”我不明白,能否详细一些,如有代码,感激不尽。
x86 2000-06-28
  • 打赏
  • 举报
回复
既然大数大概是小数的三倍,那应该是很好区分的嘛.
假定nnn[0]是小数,只到有一个数nnn[i]与nnn[0]的差的绝对值足够大(大于40%),
根据nnn[i]与nnn[0]的大小,可以定出1和0,然后(假定nnn[0]是小数)与nnn[0]
误差在40%内的都是小数.
raining 2000-06-28
  • 打赏
  • 举报
回复
你是意思是不是:
在输出数组中把大数对应为1,小数对应为0(或者反过来)?

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧