Если по какой-то причине вам нужна вся таблица, вы можете использовать uint8
dtype и упрощенную версию этого декартового кода продукта .
import numpy as np
from itertools import chain, repeat, accumulate
def cartesian_power(N, D):
dtype = f'u{2**(((N-1).bit_length() + 7) // 8 - 1).bit_length()}'
arr = np.empty((*repeat(N, D), D), dtype=dtype)
arrs = *accumulate(chain((arr,), repeat(0, D)), np.ndarray.__getitem__),
rng = np.arange(N, dtype=dtype)
idx = slice(None), *repeat(None, D-1)
for i in range(D-1, 0, -1):
arrs[i][..., i] = rng[idx[:D-i]]
arrs[i-1][1:] = arrs[i]
arr[..., 0] = rng[idx]
return arr.reshape(-1, D)
16 ^ 7 не проблема с этой функцией на моем ноутбуке 8 ГБ:
>>> cartesian_power(16, 7)
array([[ 0, 0, 0, ..., 0, 0, 0],
[ 0, 0, 0, ..., 0, 0, 1],
[ 0, 0, 0, ..., 0, 0, 2],
...,
[15, 15, 15, ..., 15, 15, 13],
[15, 15, 15, ..., 15, 15, 14],
[15, 15, 15, ..., 15, 15, 15]], dtype=uint8)
Console.Clear ()
работает в консольном приложении.
При вызове Console. Clear ()
в проекте веб-сайта ASP.NET или в приложении Windows Form, тогда вы получите IOException.
Какое у вас приложение?
Обновление:
I ' Я не уверен, поможет ли это, но, как вы можете прочитать в этой ветке форума , Console.Clear ()
выдает IOException, если вывод консоли перенаправляется. Может быть, это касается приложений WPF? В статье описывается, как проверить, перенаправлена ли консоль.
Попробуйте Console.Clear ()
- он доступен с .NET 2.0.
Попробуйте
Console.Clear();
РЕДАКТИРОВАТЬ
Вы пробуете этот метод в неконсольном приложении? Если так, то это объясняет ошибку. Другие типы приложений, проекты ASP.Net, WinForms и т. Д. Фактически не создают консоль для записи. Таким образом, клиру нечего оперировать и выдает исключение.
Используете ли вы какие-то искусственные средства, например, как описано здесь , для отображения окна консоли? Я попытался создать приложение WPF, затем изменил тип вывода приложения в его свойствах Project -> Properties ... на Console Application. Как только я это сделал, при запуске приложения всплыло окно консоли, и я смог написать в него и вызвать Console.Clear () без каких-либо исключений. (основная идея объясняется здесь , хотя пользовательский интерфейс моих свойств несколько отличался от описанного)
Console.Clear () добьется цели. Это не должно бросить IOException. Если это так, то происходит что-то еще, что вы нам не говорите, и в этом случае вы должны показать нам некоторый код.
Вам действительно нужно его очистить? Вы также можете создать свою собственную команду «cls», которая выводит на консоль 100 пустых строк и заставляет их «казаться» очищенными. просто идея.