随机数的Ruby对角矩阵

随机数的Ruby对角矩阵,ruby,arrays,vector,matrix,diagonal,Ruby,Arrays,Vector,Matrix,Diagonal,我需要创建一个对角矩阵(8x8),并用[-30..45]范围内的随机数填充它 之后,我需要将数组转换为向量并对其排序 我试过不同的方法 首先,我创建矩阵(8x8) 我还制作了一个随机数范围内的数组 array = (-30..45).to_a.shuffle puts array [0..8] 并做了一个对角矩阵 matrixd = Matrix.diagonal(1,2,3,4,5,6,7,8) puts matrixd.each_slice(matrix.column_size) {|r|

我需要创建一个对角矩阵(8x8),并用[-30..45]范围内的随机数填充它 之后,我需要将数组转换为向量并对其排序

我试过不同的方法

首先,我创建矩阵(8x8)

我还制作了一个随机数范围内的数组

array = (-30..45).to_a.shuffle
puts array [0..8]
并做了一个对角矩阵

matrixd = Matrix.diagonal(1,2,3,4,5,6,7,8)
puts matrixd.each_slice(matrix.column_size) {|r| p r}
如何用数组填充对角矩阵并将其放入向量中? 我有两个排序向量的算法

class Array
  def bubblesort!
    length.times do |j|
      for i in 1...(length - j)
        if self[i] < self[i - 1]
          self[i], self[i - 1] = self[i - 1], self[i]
        end
      end
    end
    self
  end
end

class Array
  def selectionsort!
    0.upto(length - 2) do |i|
      (min_idx = i + 1).upto(length - 1) do |j|
        if self[j] < self[min_idx]
          min_idx = j
        end
      end
      if self[i] > self[min_idx]
        self[i], self[min_idx] = self[min_idx], self[i]
      end
    end
    self
  end
end
类数组
def泡泡运动!
长度乘以do | j|
对于1中的i…(长度-j)
如果self[i]self[min_idx]
self[i],self[min_idx]=self[min_idx],self[i]
结束
结束
自己
结束
结束

对于对角矩阵:

elems = [*-30..45].sample(8)
Matrix.diagonal(*elems)

对于其余部分,我不确定您想要为对角矩阵实现什么:

elems = [*-30..45].sample(8)
Matrix.diagonal(*elems)

对于其余部分,我不确定您想要为对角矩阵实现什么:

elems = [*-30..45].sample(8)
Matrix.diagonal(*elems)

对于其余部分,我不确定您想要为对角矩阵实现什么:

elems = [*-30..45].sample(8)
Matrix.diagonal(*elems)

对于其余部分,我不确定您试图完成的是什么

产生了
NoMethodError:undefined method
sample'For-30..45:Range
。您可以将其更改为
[*-30..45].sample(8)`改为修复它,或
(-30..45).更改为_a.sample(8)
。我想剩下的只是
向量[*elems.sort]
。谢谢大家!我想了大概三天,并且搜索了相关信息!对于-30..45:范围
,产生
NoMethodError:undefined method
sample'。您可以将其更改为
[*-30..45].sample(8)`改为修复它,或
(-30..45).更改为_a.sample(8)
。我想剩下的只是
向量[*elems.sort]
。谢谢大家!我想了大概三天,并且搜索了相关信息!对于-30..45:范围
,产生
NoMethodError:undefined method
sample'。您可以将其更改为
[*-30..45].sample(8)`改为修复它,或
(-30..45).更改为_a.sample(8)
。我想剩下的只是
向量[*elems.sort]
。谢谢大家!我想了大概三天,并且搜索了相关信息!对于-30..45:范围
,产生
NoMethodError:undefined method
sample'。您可以将其更改为
[*-30..45].sample(8)`改为修复它,或
(-30..45).更改为_a.sample(8)
。我想剩下的只是
向量[*elems.sort]
。谢谢大家!我想了大概三天,并且搜索了相关信息!在创建对角矩阵后,您能更具体地说明您想要做什么吗?示例输出会很有帮助。您能否更具体地说明创建对角矩阵后要执行的操作?示例输出会很有帮助。您能否更具体地说明创建对角矩阵后要执行的操作?示例输出会很有帮助。您能否更具体地说明创建对角矩阵后要执行的操作?示例输出将很有帮助。