У меня есть матрица размера n x n, где каждая строка представляет собой перестановку целых чисел от 1 до n.
Для данного целого числа k в {1,2,...,n , моя цель — найти k в каждой строке и удалить его, чтобы оставшиеся элементы в каждой строке оставались в исходном порядке.
Для конкретности , предположим, что X является этой матрицей и n = 5.
Есть ли способ удалить k, который хорошо масштабируется с помощью m?
В настоящее время я создаю маску, которая идентифицирует записи в каждой строке X, которые не равны k. Таким образом, маска дает мне логический массив, который имеет значение True для элементов в строке i, которые не равны k.
Далее я применяю маску к каждой строке: я перебираю каждую строку и использую X[mask] для фильтрации значения k в каждой строке. Результат для каждой строки затем присваивается соответствующей строке в Xnew.
m = 5
n = m
X = np.array([np.random.permutation(np.arange(1, n + 1)) for _ in range(m)])
k = 1
mask = X != k
Xnew = np.zeros([n,m-1])
for i in range(m):
Xnew[i]=X[i][mask[i]]
Этот подход работает для небольших матриц, но может плохо масштабироваться с более крупными матрицами из-за цикла по каждой строке. Мне интересно, есть ли более эффективный способ добиться этого?
У меня есть матрица размера n x n, где каждая строка представляет собой перестановку целых чисел от 1 до n. Для данного целого числа k в {1,2,...,n , моя цель — найти k в каждой строке и удалить его, чтобы оставшиеся элементы в каждой строке оставались в исходном порядке. Для конкретности , предположим, что X является этой матрицей и n = 5. [code]import numpy as np X= np.array([ [4, 3, 5, 1, 2], [5, 3, 2, 1, 4], [3, 2, 4, 1, 5], [2, 4, 3, 5, 1], [3, 5, 2, 1, 4] ]) [/code] Для k = 1 я хочу, чтобы результат был следующим: [code]X = np.array([ [4, 3, 5, 2], [5, 3, 2, 4], [3, 2, 4, 5], [2, 4, 3, 5], [3, 5, 2, 4] ]) [/code] Есть ли способ удалить k, который хорошо масштабируется с помощью m? В настоящее время я создаю маску, которая идентифицирует записи в каждой строке X, которые не равны k. Таким образом, маска[i] дает мне логический массив, который имеет значение True для элементов в строке i, которые не равны k. Далее я применяю маску к каждой строке: я перебираю каждую строку и использую X[i][mask[i]] для фильтрации значения k в каждой строке. Результат для каждой строки затем присваивается соответствующей строке в Xnew. [code]m = 5 n = m X = np.array([np.random.permutation(np.arange(1, n + 1)) for _ in range(m)]) k = 1 mask = X != k Xnew = np.zeros([n,m-1]) for i in range(m): Xnew[i]=X[i][mask[i]]
[/code] Этот подход работает для небольших матриц, но может плохо масштабироваться с более крупными матрицами из-за цикла по каждой строке. Мне интересно, есть ли более эффективный способ добиться этого?
У меня есть матрица размера n x n, где каждая строка представляет собой перестановку целых чисел от 1 до n.
Для данного целого числа k в {1,2,...,n , моя цель — найти k в каждой строке и удалить его, чтобы оставшиеся элементы в каждой строке...
У меня есть матрица размера n x n, где каждая строка представляет собой перестановку целых чисел от 1 до n.
Для данного целого числа k в {1,2,...,n , моя цель — найти k в каждой строке и удалить его, чтобы оставшиеся элементы в каждой строке...
У меня есть система заказов с использованием приложения C# Desktop
, и у меня есть цена товаров, НДС и общая сумма
Это код, используемый сейчас
double discount = Convert.ToDouble(textDiscount.Text);
double amount =...
Обычная задача при программировании интервью (правда, исходя из моего опыта проведения собеседований, это не так) — взять строку или целое число и перечислить все возможные перестановки.
Есть ли пример того, как это делается, и логика решения...