这样的一个算法,有一个浮点数组作为参数。我要对这个浮点数组进行转换,按照比例转换为0-200之间的整数。如一组这样的数:1000,3500,2000 转换后为:10,50,20
或者一组这样的数:1.5,2.3,7.62 转换后为:15,23,76
求算法,最好给出源程序代码,谢谢谢谢!还有一个算法是,要将他们转换为0-6之间的整数,快下班了,我不走。在线等着给分。谢谢大家!!!!!
或者一组这样的数:1.5,2.3,7.62 转换后为:15,23,76
求算法,最好给出源程序代码,谢谢谢谢!还有一个算法是,要将他们转换为0-6之间的整数,快下班了,我不走。在线等着给分。谢谢大家!!!!!
解决方案 »
- dotnetbar和IrisSkin2兼容性问题
- 看不懂了,翻译下
- C#form画面:如何控制自定义控件内的子控件的光标?
- 找不到可安装的 ISAM (。net+access)
- 请问如何能获取richTextBox的click位置
- 关于ListItem的Text属性
- 怎样将textBox中的内容写入到一个.ini文件中,以后从这个文件中调用?
- 如何清除webbrowser的缓存啊...
- 我做winform来登陆csdn时登陆不了,帮忙!!!
- C#:如何在自己程序中建立的form上,用鼠标拖动调整控件的位置和大小,并且可在两Form间拖动控,就像vs的IDE一样?
- 请问怎么样用正则表达式替换掉字符里面的所有回车符,换行符呢?
- listbox控件
那像素一般都是2000左右就够了吧你试试这样,先把所有的数乘以10然后把所有数 强制转换成 int然后试下取平均值和100比较进行确认倍率要么就用最大值和最小值 我下了 哈哈 也期待高手解决明天来观望
然后就是怎么扩大或者缩小,
扩大,先数组每个元素*10,然后判断时候满足条件(可以写成函数调用),不行继续扩大,可以while(满足否)
{
*10;
}缩小也是一样的
List<decimal> listDecimal = new List<decimal>();
listDecimal.Add(1000M);
listDecimal.Add(3500M);
listDecimal.Add(2000M); Queue<List<decimal>> quelist = new Queue<List<decimal>>();
quelist.Enqueue(listDecimal);
while (quelist.Count > 0)
{
decimal num = -1;
List<decimal> templist = quelist.Dequeue();
decimal minvalue = templist.Min();
decimal maxvalue = templist.Max();
if (minvalue >= 100) { num = 0.1M; }
else if (10 <= minvalue && maxvalue > 200)
{
num = 0.1M;
}
else if (0 <= minvalue && maxvalue <= 10 && maxvalue<=20)
{
num = 10M;
}
if (num > 0)
{
for (int i = 0; i < templist.Count; i++)
{
templist[i] = templist[i] * num;
} quelist.Enqueue(templist);
}
} for (int i = 0; i < listDecimal.Count; i++)
{
listDecimal[i] = decimal.Truncate(listDecimal[i]);
if (listDecimal[i] > 200) { listDecimal[i] = 200; }
}
{
return arctan(x)*200/pi+100;
}
如果是这样的数 ,那么直接格式话成INT,小数位四舍五入,如果有两个数介于【0,200】之间另外一个大于200的话 ,且另外两个介于【0,99】
直接把 greatNum == 200 如果有两个数介于【0,200】之间另外一个大于200的话,且另外两个介于【100,200】
把greatNum /10 并且另外两个也 /10得到的数再格式花成INT
这个时候再把得到的数进行初始判断即第一步这样一步步列出来把你想要的数据都想出来,可能的数据都想出来
这个算法应该就成了 ,,,
太笨了
继续观望高手吧
2、计算数组中的介于0-200直接的数字的个数,如果大于等于数组的count/2就返回数组。
3、如2为否,将数组/10得到新数组,重复2和3的操作。
4、将最终数组中大于0的数字,改为200,小于0的数字改为0(其实没有小于零的数字,因为已经取整了。)这样就取消了×10或/10的判断,先放大,然后逐步缩小,循环/10.直到满足条件为止。大家再帮忙看看这种算法有什么不足。