怎么求随机数的最大值最小值平均值用各种不同的方法

CodePrint 2012-10-16 07:11:41
求高人指点
我想要不同的方法
...全文
505 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
winteredchengxu 2012-10-18
  • 打赏
  • 举报
回复
求方法来报个到
threenewbee 2012-10-18
  • 打赏
  • 举报
回复
你要把基础知识补上,而语言只是工具而已,你的意识到没有基础的“学习”纯粹是浪费时间的瞎折腾。
threenewbee 2012-10-18
  • 打赏
  • 举报
回复
这不是“C#入门书”解决的问题。

就好比我让你不写程序仅仅用中文描述下什么是红黑树算法,你看语文书是找不到答案的一样。
cheng2005 2012-10-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

C# code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 数组
{
class Program
{
static void Main(string[] args)
{

……
[/Quote]
你如果在这种纯粹的逻辑问题上总是纠结于代码怎么写,那你永远不会提高。
说白了,这个问题给小学生,中学生,大学生,会得到不一样的答案。这些答案跟代码都一点关系没有。
你如果真的明白了求解的过程,你一定可以把代码写出来,如果你写不出来,说明你还是不会求解。
threenewbee 2012-10-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
C# code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 数组
{
class Program
{
static void Main(string[] args)
{
……
[/Quote]

怎么写代码不重要,经验告诉我,写了未必你就能看懂。找一本数据结构的书,把堆排序这一章节仔细看看,比看代码容易。最好找有图示的书来看。
CodePrint 2012-10-18
  • 打赏
  • 举报
回复
我现在看这c#入门的书简单但是叫我写代码不会写怎么办 是多看看代码呢还是多做做练习啊
nikolaichow 2012-10-17
  • 打赏
  • 举报
回复
Linq最快。
CodePrint 2012-10-16
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 数组
{
class Program
{
static void Main(string[] args)
{

//创建长度为10数据类型为int的数组
int[] counts = new int[10];
Random rnd = new Random();
for (int i = 0; i < counts.Length; i++)
{
counts[i] = rnd.Next(1, 101);
}

Console.WriteLine(string.Format("最大值为:{0}", Max(counts)));
Console.WriteLine(string.Format("最小值为:{0}", Min(counts)));
Console.WriteLine(string.Format("平均值为:{0}", Avg(counts)));

Console.Read();
}



public static int Max(int[] args)
{
for (int i = 0; i < args.Length-1; i++)
{
for (int j = i + 1; j < args.Length; j++)
{
if (args[i] < args[j])
{
int tmp = args[i];
args[i] = args[j];
args[j] = tmp;
}
}
}
return args[0];
}


public static int Min(int[] args)
{
for (int i = 0; i < args.Length - 1; i++)
{
for (int j = i + 1; j < args.Length; j++)
{
if (args[i] > args[j])
{
int tmp = args[i];
args[i] = args[j];
args[j] = tmp;
}
}
}
return args[0];
}

public static int Avg(int[] args)
{
int sum = 0;
for (int i = 0; i < args.Length; i++)
{
sum += args[i];
}

return sum / args.Length;
}
}
}

这种办法是不是最好的


对于有序的数据,直接取得最后一个元素就可以了。那么对于无序的元素,你可以先排成有序的,然后再取得最后一个元素(逆序取得第一个)。

除了完全的排序,我们还可以使用一个大根堆,也就是执行堆排序的一次迭代,这样使得数据变得“基本有序”。
我想问下着个怎么写代码 我不懂 能写下代码让我看看吗
threenewbee 2012-10-16
  • 打赏
  • 举报
回复
“队列”和取最大值最小值没有什么关系。我在2L中说了,如果你需要取得最大的n个值,那么使用有序表或者排序二叉树(堆)可以优化性能。

但是队列本身是可以取最大值、最小值的,事实上,只要能够枚举所有元素的集合类型,都可以计算最大值最小值。在.NET中Queue<T>队列对象也可以使用Max Min两个函数。
CodePrint 2012-10-16
  • 打赏
  • 举报
回复
能不能用队列取它们的最大值和最小值啊?
threenewbee 2012-10-16
  • 打赏
  • 举报
回复
对于C#来说
LINQ中的Max Min Average三个函数足够了。
至于它们的原理,和你在小学的时候学习到的一样。
CodePrint 2012-10-16
  • 打赏
  • 举报
回复
有代码是最好的
CodePrint 2012-10-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
与其寻找“各种不同的方法”,不如多去归纳下它们的本质,前者使得你成为经验丰富的菜鸟,后者让你真正进步。
[/Quote]
其实我现在本来就是菜鸟 ,我就想看看有没有什么好的编程来提升下自己
threenewbee 2012-10-16
  • 打赏
  • 举报
回复
寻找最大值最简单的办法就是依次遍历所有元素,依次比较得到最大的。

当然,对于有序的数据,直接取得最后一个元素就可以了。那么对于无序的元素,你可以先排成有序的,然后再取得最后一个元素(逆序取得第一个)。

除了完全的排序,我们还可以使用一个大根堆,也就是执行堆排序的一次迭代,这样使得数据变得“基本有序”。

除了好的办法,还有很多不好的办法,比如最馊的一个办法就是,每次从数据中逸出一个最小的元素,直到最后剩下的那个,显然就是最大的。
threenewbee 2012-10-16
  • 打赏
  • 举报
回复
寻找最大值最简单的办法就是依次遍历所有元素,依次比较得到最大的。

当然,对于有序的数据,直接取得最后一个元素就可以了。那么对于无序的元素,你可以先排成有序的,然后再取得最后一个元素(逆序取得第一个)。

除了完全的排序,我们还可以使用一个大根堆,也就是执行堆排序的一次迭代,这样使得数据变得“基本有序”。

除了好的办法,还有很多不好的办法,比如最馊的一个办法就是,每次从数据中逸出一个最小的元素,直到最后剩下的那个,显然就是最大的。
threenewbee 2012-10-16
  • 打赏
  • 举报
回复
与其寻找“各种不同的方法”,不如多去归纳下它们的本质,前者使得你成为经验丰富的菜鸟,后者让你真正进步。

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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