公约数,这个一点都不会,第二步就不懂了

img

img

关于公约数的编程,请问从第二步开始是什么意思啊,x怎么就=y了?

img


你是从来没有学过编程吗?

可以先看一下 辗转相除法,公元前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

看不懂不是代码问题,是数学问题
你要先搞明白算法,代码只是用来实现算法的
算法本身不明白,你光看代码,那肯定是越看越看不懂
除非你对代码非常了解,光看代码就能反推出算法来

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7706450
  • 除此之外, 这篇博客: 自己制作深度学习数据集教程中的 3.读取训练的x,y,我做到这一步就结束了,因为网络需要改造,所以还没有具体想到要几个标签。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 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矩阵,看分类,由于这里我还没有试验过用到自己的数据集,所以大家有错误可以指出来,我修改一下