Visual C++实现Fibonacci求余法的数据结构分析

版权申诉
0 下载量 59 浏览量 更新于2024-11-24 收藏 729B ZIP 举报
资源摘要信息:"hanshu.zip_数据结构_Visual_C++" 是一个以数据结构和Visual C++编程语言为主题的压缩包文件,包含有关于斐波那契序列的经典函数求余法则的实现。文件中应当包含一个名为 hanshu.cpp 的源代码文件,该文件应当是使用 Visual C++ 编写的,实现了通过线性代数的方法对斐波那契数列进行完整求解的程序。 知识点详细说明: 1. 数据结构基础: 数据结构是计算机存储、组织数据的方式,使得数据可以高效地进行访问和修改。不同的数据结构适合于不同类型的算法,也是学习计算机科学和编程语言的重要基础。 2. 斐波那契数列: 斐波那契数列是一个非常著名的数学序列,以递归的方式定义:F(0)=0, F(1)=1, 对于 n > 1, F(n) = F(n-1) + F(n-2)。这个数列在自然界中普遍存在,如植物的叶序、果实排列、动物的繁殖等方面。 3. 经典函数求余法则: 求余法则通常用于模运算中,比如在计算大数的斐波那契数时,为了避免溢出和提高计算速度,可以采用取模运算。在斐波那契数列的实现中,可以采用矩阵快速幂的方法,利用模运算的性质来简化计算。 4. 线性代数方法: 线性代数是数学的一个分支,研究向量空间、线性映射以及这两个概念的基本性质。在计算斐波那契数列时,可以使用矩阵的方法,将斐波那契数列转化为矩阵的幂的计算,即利用矩阵乘法快速得到数列中的项。 5. Visual C++ 环境: Visual C++ 是微软公司开发的一个集成开发环境(IDE),专门用于C++语言的程序开发。它提供了编辑器、编译器、调试器等工具,使得开发者能够编写、编译和调试C++程序更加高效。 6. 编程实践: 在 hanshu.cpp 这个文件中,应当包含了C++语言编写的源代码,这个程序通过运用线性代数中的矩阵运算求解斐波那契数列。开发者需要利用Visual C++环境提供的库函数和语法特性来实现算法逻辑,并能够将结果输出或进行其他形式的处理。 在学习和实践过程中,理解斐波那契数列的数学性质和如何在编程中高效地实现相关计算是非常重要的。此外,掌握数据结构和算法的思想对于开发复杂软件系统和提高编程水平具有重要意义。学习Visual C++环境的使用,可以帮助开发者更快地编写、调试和优化代码,提高开发效率。
2023-06-07 上传

dataset = pd.read_csv('cifar_train.csv') #dataset = pd.read_csv('heart.csv') #dataset = pd.read_csv('iris.csuv') #sns.pairplot(dataset.iloc[:, 1:6]) #plt.show() #print(dataset.head()) #shuffled_data = dataset.sample(frac=1) #dataset=shuffled_data #index=[0,1,2,3,4,5,6,7,8,9,10,11,12,13] #dataset.columns=index dataset2=pd.read_csv('test.csv') #X = dataset.iloc[:, :30].values #y = dataset.iloc[:,30].values mm = MinMaxScaler() from sklearn.model_selection import train_test_split #X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=0) X_train =dataset.iloc[:,1:].values X_test = dataset2.iloc[:,1:].values y_train = dataset.iloc[:,0].values y_test = dataset2.iloc[:,0].values print(y_train) # 进行独热编码 def one_hot_encode_object_array(arr): # 去重获取全部的类别 uniques, ids = np.unique(arr, return_inverse=True) # 返回热编码的结果 return tf.keras.utils.to_categorical(ids, len(uniques)) #train_y_ohe=y_train #test_y_ohe=y_test # 训练集热编码 train_y_ohe = one_hot_encode_object_array(y_train) # 测试集热编码 test_y_ohe = one_hot_encode_object_array(y_test) # 利用sequential方式构建模型 from keras import backend as K def swish(x, beta=1.0): return x * K.sigmoid(beta * x) from keras import regularizers model = tf.keras.models.Sequential([ # 隐藏层1,激活函数是relu,输入大小有input_shape指定 tf.keras.layers.InputLayer(input_shape=(3072,)), # lambda(hanshu, output_shape=None, mask=None, arguments=None), #tf.keras.layers.Lambda(hanshu, output_shape=None, mask=None, arguments=None), tf.keras.layers.Dense(500, activation="relu"), # 隐藏层2,激活函数是relu tf.keras.layers.Dense(500, activation="relu"), # 输出层 tf.keras.layers.Dense(10, activation="softmax") ])

2023-07-15 上传