Создать сумму квадратов от 1 до 10 для полиномиального графа - PullRequest
0 голосов
/ 17 февраля 2020

В попытке написать запрос в Python, который сгенерирует первые сто сумм квадратов от одного до десяти, делается следующая попытка:

for a in range(1, 10): 
    for b in range(1,10):
        print(a**2+b**2)

Формат должен выглядеть следующим образом:

1   1   4   9   16  25  36  49  64  81  100
4   5   8   13  20  29  40  53  68  85  104
9   10  13  18  25  34  45  58  73  90  109
16  17  20  25  32  41  52  65  80  97  116
25  26  38  34  41  50  61  74  89  106 125
36  37  40  45  52  61  72  85  100 117 136
49  75  53  58  65  74  85  98  113 130 149
64  65  68  73  80  89  100 113 128 145 164
81  82  85  90  97  106 117 130 145 162 181
100 101 104 109 116 125 136 149 164 181 200

После прочтения, что сумма двух квадратов в полиноме всегда будет положительной, мне пришло в голову, что будет хорошим набором данных иметь все числа, которые могут быть сгенерированы суммой двух квадраты. Полиномиальный тип (a + b) * (ab) ...

Мне кажется, что должен быть ответ, который создает пару матриц, умноженных вместе.

Так пробовал, но формат неправильный (Благодарю UnsignedFoo за помощь)

df=pd.Dataframe=([])
for a in range(1, 10):
    val_row = " ".join([str(a**2+b**2) for b in range(1,10)])    
    print("{}\n".format("["+val_row+"]"))  
    df.append("{}\n".format("["+val_row+"]"))

Это может быть жестко запрограммировано в строку: может быть построен с меньшими затратами труда - до этого момента Excel делает все, но Excel не имеет расширенных библиотек matplot:

import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
%matplotlib inline
%config InlineBackend.figure_format='retina'
from mpl_toolkits import mplot3d
fig=plt.figure(figsize=(8,6))
xs=df1['A']
ys=df1['B']
zs=df1['C']
ax=fig.add_subplot(111,projection='3d')
ax.scatter(xs,ys,zs,s=50,alpha=0.6,edgecolors='w')
ax.set_xlabel('A')
ax.set_ylabel('B')
ax.set_zlabel('C')
plt.show()

Лучший пример, который ближе к тому, где это должно быть, go :

X = np.arange(1, 10, 1)
Y = np.arange(1, 10, 1)
X, Y = np.meshgrid(X, Y)
R = (X**2 + Y**2)# R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.viridis)

plt.show()

Все еще надеемся, что кто-то может ответить на этот вопрос. Я хотел бы удалить и начать заново: «ответы» не решают проблему построения графиков.

Ответы [ 2 ]

3 голосов
/ 17 февраля 2020

Синтаксическая ошибка в вашем коде заключается в том, что после a для l oop a : с последующим переводом строки:

Это приводит к:

for b in range(1, 10):
  for a in range(1,b):
    print(a**2+b**2)

Пожалуйста обратите внимание, что это все еще не печатает вашу таблицу, так как print всегда генерирует новую строку в python.

2 голосов
/ 17 февраля 2020
for a in range(1, 11):
   val_row = " ".join([str(a**2 + b**2 -1) for b in range(1,11)])
   print("{}\n".format(val_row))

Выход:

1   4   9   16  25  36  49  64  81  100

4   7   12  19  28  39  52  67  84  103

9   12  17  24  33  44  57  72  89  108

16  19  24  31  40  51  64  79  96  115

25  28  33  40  49  60  73  88  105 124

36  39  44  51  60  71  84  99  116 135

49  52  57  64  73  84  97  112 129 148

64  67  72  79  88  99  112 127 144 163

81  84  89  96  105 116 129 144 161 180

100 103 108 115 124 135 148 163 180 199
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...