关于公约数的编程,请问从第二步开始是什么意思啊,x怎么就=y了?
可以先看一下 辗转相除法,公元前300年前就有的算法,应该就能懂了
def get_gcd(x, y):
if x < y:
# 交换x和y的值,在编程中,等号的意义是赋值,而不是数学中的等于
x, y = y, x
# 求最大公约数的一种算法:辗转相除法
while (x % y) != 0:
r = x % y
x = y
y = r
return y
def get_gcd1(x, y):
# 不交换也可以,不是必须的步骤
if x < y:
while (y % x) != 0:
r = y % x
y = x
x = r
return x
看不懂不是代码问题,是数学问题
你要先搞明白算法,代码只是用来实现算法的
算法本身不明白,你光看代码,那肯定是越看越看不懂
除非你对代码非常了解,光看代码就能反推出算法来
import pickle
import numpy as np
import os.path
import codecs
def load_data(datafile, num_class=8, save=False, save_path='dataset.pkl'):
fr = codecs.open(datafile, 'r', 'utf-8')
train_list = fr.readlines()
labels = []
images = []
for line in train_list:
tmp = line.strip().split(' ')
fpath = tmp[0]
img = cv2.imread(fpath)
np_img = np.asarray(img, dtype="float32")
images.append(np_img)
index = int(tmp[xxx])
label = np.zeros(num_class)
label[index] = 1
labels.append(label)
if save:
pickle.dump((images, labels), open(save_path, 'wb'))
fr.close()
return images, labels
这个代码我是在修改了RCNN的预处理过程,就是读取txt文件,然后做个one-hot矩阵,看分类,由于这里我还没有试验过用到自己的数据集,所以大家有错误可以指出来,我修改一下