我想要一个矩阵向右旋转。它是为方阵工作的,但我也应该为非平方矩阵工作。
我试着旋转它,但我想不出有什么方法能让它对非方阵起作用。
#include <stdio.h>
#define x 7
#define y 7
int build() {
int i = 0, k = 0;
int matrix[x][y];
for (i = 0; i < x; ++i) {
for (k = 0; k < y; ++k) {
matrix[i][k] = i;
}
}
for (
n= input("Enter size for matrix: ")
l=[[input("Enter number: ") for i in range(n)]for j in range(n)]
a=[[0 for i in range(n)]for j in range(n)]
for i in range(n):
for j in range(n):
a[j][i]=l[i][j]
for i in range(n):
a[i]=a[i].reverse()
for i in range(n):
for j in
我想打印一个方阵,需要在每个元素之间间隔3个空格。然后我发现char '\t'可能是最简单的方法。但是,我认为空间的数量是在某种算法中定义的。有人能给我介绍一下算法吗?还是有办法在C++中为'\t'设置特定的空格?
我知道如何通过确定空格字符的数量来手动输出。然而,'\t'似乎很容易编码,而不是循环某些算法。
对于一个简单的方阵:
for (int x = 0, num = 1; x < 5; x++) {
for (int y = 0; y < 5; y++, num++) {
cout &l
我使用eigs来计算稀疏方阵的特征向量,稀疏方阵很大(数万)。我想要的是最小的特征向量集合。但
eigs(A, 10, 'sm') % Note: A is the matrix
运行速度非常慢。
然而,使用eigs(A,10,'lm')给我的答案相对更快。正如我所尝试的,在eigs(A,10,'lm')中用A_width替换10,这样就包括了所有的特征向量,并不能解决这个问题,因为这使得它和使用'sm‘一样慢。
所以,我想知道为什么计算最小向量(使用'sm')比计算最大向量慢得多?
顺便说一句,如果你有任何关于
我在试着把两个上三角矩阵相乘。矩阵被存储在一维数组中,而不是通常的二维数组中,方法是省略对角线下的零(以节省空间)。我已经知道了如何将给定一对索引的元素映射到单个数组的索引。但我在实际计算中遇到了问题(该计算适用于较小的n x n方阵,但由于某种原因,对于较大的n x n方阵,计算结果不正确)。我认为我可能向getValue()函数传递了不正确的参数,但考虑到矩阵乘法的一般公式,我认为它们应该是正确的。任何帮助都将不胜感激!
下面是我的相关代码:
// mat is an array containing the upper triangle data for a square matrix
我试着想一个算法,但做不到。以下是问题所在:
有16个元素,按四种类型(a、b、c和d)分组。我们还有四个组,A,B,C和D。
在初始状态中,四个组各有四个随机元素,例如:
A: c, c, a, d
B: b, b, a, a
C: b, b, c, c
D: d, d, d, a
组中元素的顺序很重要。
允许两种操作:
1)旋转组元素(两个方向),例如:
c, c, a, d -> d, c, c, a
2)将一个组中的两个相邻元素与相邻组中的相应元素互换,考虑到第一个组和最后一个组以及元素也是相邻的,因此:
A: (c, c), a, d
B: (b, b), a, a
->
用O(1)额外空间将方阵旋转90度。我用Python来解决这个问题。我想知道我是否能进一步改进我的代码。
def rotate_by_90(m):
# unpacking arguments with zip(*) in reverse with [ : :-1]
tuples = zip(*m[::-1])
# flattening tuples to list with [list(i)]
return [list(i) for i in tuples]
def makeMatrix(array, size):
# validating size of matrix