两个数组元素相加问题

MichaelGLX 2018-11-15 09:23:48
double[] one=new double[3]{-0.2,0,0.2};
double[] two=new double[7]{30,0,-30,40,-50,-10,12};
two数组元素任意加one数组中元素,
得出多个长度为7的数组
算法怎么写
...全文
741 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2018-11-15
  • 打赏
  • 举报
回复
为何是 3的7次方个 ?
为何要 嵌套7个循环 ?
enaking 2018-11-15
  • 打赏
  • 举报
回复
用排列与组合的方式,百度一下吧,
MichaelGLX 2018-11-15
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
随机数当然会有重复
你并没有讲要全部开列出来(two数组元素任意加one数组中元素 显然不是全部开列的意思)
如果要全部开列,也就是一个二重循环而已

全部开列出来 要怎么循环?我这边做出来了,但是太麻烦,嵌套7个循环。
xuzuning 2018-11-15
  • 打赏
  • 举报
回复
随机数当然会有重复
你并没有讲要全部开列出来(two数组元素任意加one数组中元素 显然不是全部开列的意思)
如果要全部开列,也就是一个二重循环而已
MichaelGLX 2018-11-15
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
            double[] one = { -0.2, 0, 0.2 };
double[] two = { 30, 0, -30, 40, -50, -10, 12 };
var rand = new Random();
two[rand.Next(0, two.Length)] += one[rand.Next(0, one.Length)];
Console.WriteLine(string.Join(", ", two));



要得出 生成3的7次方个 长度为7的数组
你这样会重复的吧
xuzuning 2018-11-15
  • 打赏
  • 举报
回复
            double[] one = { -0.2, 0, 0.2 };
double[] two = { 30, 0, -30, 40, -50, -10, 12 };
var rand = new Random();
two[rand.Next(0, two.Length)] += one[rand.Next(0, one.Length)];
Console.WriteLine(string.Join(", ", two));
MichaelGLX 2018-11-15
  • 打赏
  • 举报
回复
就说一个7行3列矩阵,每行任意取一个元素
xuzuning 2018-11-15
  • 打赏
  • 举报
回复
如果真是 7行3列,你并没有算错
但是你的 one = { -0.2, 0, 0.2 } 是轴对称的,如果全加在一个元素上就等于没加
考虑到加 0 也无意义,所以也只能有 1344 个结果,而不是 2187 个

而 one = { -0.2, 0, 0.2 } 表示为正负20%的区间,应该是有实际意义的
MichaelGLX 2018-11-15
  • 打赏
  • 举报
回复
double[,] three= new double[two.Length, one.Length];
for (int i = 0; i < two.Length; i++)
{
for (int j = 0; j < one.Length; j++)
three[i, j] = two[i] + one[j];
}
得出7行3列
MichaelGLX 2018-11-15
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
为何是 3的7次方个 ?
为何要 嵌套7个循环 ?



不是吗?
相当于 7行3列 矩阵
一行取一个元素 ,每行有3种情况 共7行
不是3的7次方组合吗
难道我搞错了?
threenewbee 2018-11-15
  • 打赏
  • 举报
回复
double[][] result = one.Select(x => two.Select(y => x + y).ToArray()).ToArray();

110,534

社区成员

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

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

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