一些常用算法 练手的的代码

看了平时写的一些东西 做的一些例子 让电脑按照你的意图去显示一些东西 你会发现 “原来编程真的很有意思的”

 

1 using System;
2   using System.Collections.Generic;
3   using System.Linq;
4   using System.Text;
5   using System.Data;
6 using System.Data.SqlClient;
7 using System.IO;
8
9 namespace studyDemo
10 {
11 class Program
12 {
13 static void Main( string [] args)
14 {
15
16 // recursion(1, 0);
17 // sortDemo();
18 // commonMultiple(13, 4);
19
20 // getDir(new DirectoryInfo(@"c:\"),0);
21 // numToString(757657578);
22
23 // string str = "hello world!!";
24 // foreach (char c in str)
25 // Console.WriteLine(c);
26 }
27
28 static void numToString( int num) // 把整型转换成字符串
29 {
30 char [] str = { ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' };
31 int indx = 0 ;
32
33 while (num > 0 )
34 {
35 int tmpNum = num % 10 ;
36 char tmpChar;
37 switch (tmpNum)
38 {
39 case 1 :
40 tmpChar = ' ' ;
41 break ;
42 case 2 :
43 tmpChar = ' ' ;
44 break ;
45 case 3 :
46 tmpChar = ' ' ;
47 break ;
48 case 4 :
49 tmpChar = ' ' ;
50 break ;
51 case 5 :
52 tmpChar = ' ' ;
53 break ;
54 case 6 :
55 tmpChar = ' ' ;
56 break ;
57 case 7 :
58 tmpChar = ' ' ;
59 break ;
60 case 8 :
61 tmpChar = ' ' ;
62 break ;
63 case 9 :
64 tmpChar = ' ' ;
65 break ;
66 default :
67 tmpChar = ' ' ;
68 break ;
69 }
70 if (indx < str.Length)
71 str[str.Length - indx - 1 ] = tmpChar;
72 indx ++ ;
73
74 num /= 10 ;
75 }
76
77 Console.WriteLine( new string (str).Trim());
78 }
79
80 static void commonMultiple( int num1, int num2) // 求最小公倍数 的算法
81 {
82 int comNum = 0 ;
83 int tmp = - 1 ;
84 if (num1 > num2)
85 {
86 tmp = num1;
87 num1 = num2;
88 num2 = tmp;
89 }
90
91 for ( int i = num2; i <= num1 * num2; i ++ )
92 {
93 if (i % num1 == 0 && i % num2 == 0 )
94 {
95 comNum = i;
96 break ;
97 }
98 }
99 if (tmp == - 1 )
100 Console.WriteLine( " {0}跟{1}的最小公倍数是:{2} " , num1, num2, comNum);
101 else
102 Console.WriteLine( " {0}跟{1}的最小公倍数是:{2} " ,num2 ,num1 , comNum);
103 }
104
105 static void sortDemo() // 排序算法
106 {
107 int [] arr = { 4 , 5 , 3 , 678 , 12 , 78 , 90 , 1 };
108
109 for ( int i = 0 ; i < arr.Length; i ++ )
110 {
111 for ( int j = 0 ; j < arr.Length - 1 ; j ++ )
112 {
113 if (arr[j + 1 ] > arr[j])
114 {
115 int tmp;
116 tmp = arr[j];
117 arr[j] = arr[j + 1 ];
118 arr[j + 1 ] = tmp;
119 }
120 }
121 }
122
123 foreach ( int n in arr)
124 {
125 Console.WriteLine(n);
126 }
127 }
128
129 static void getDir(DirectoryInfo dir, int level) // 递归算法 遍历目录
130 {
131 foreach (DirectoryInfo d in dir.GetDirectories())
132 {
133 for ( int i = 0 ; i < level; i ++ )
134 Console.Write( " " );
135 Console.WriteLine(d.Name);
136 getDir(d, level + 1 );
137 }
138 }
139
140 static void recursion( int node, int level) // 递归算法 树状图
141 {
142 // 数据库里表的结构:
143 /*
144 * create table tree
145 * (
146 * id int primary key identity (1,1) ,
147 * nm varchar(20),
148 * pId int
149 * )
150 * id主键自增列 nm名称 pId父ID(从属于)
151 */
152 string sql = " select * from tree where pid=@1 " ;
153 SqlConnection conn = new SqlConnection( @" server=.\sqlexpress;database=tempdb;Integrated Security=true " );
154 conn.Open();
155
156 SqlCommand cmd = new SqlCommand(sql, conn);
157 cmd.Parameters.Add( new SqlParameter( " @1 " , node));
158
159 SqlDataReader dr = cmd.ExecuteReader();
160
161 while (dr.Read())
162 {
163 for ( int i = 0 ; i <= level; i ++ )
164 Console.Write( " --- " );
165 Console.WriteLine(dr[ " nm " ]);
166 int id = dr.GetInt32( 0 );
167
168 SqlConnection conn2 = new SqlConnection( @" server=.\sqlexpress;database=tempdb;Integrated Security=true " );
169 conn2.Open();
170 SqlCommand cmd2 = new SqlCommand( " select count(*) from tree where pid=@1 " , conn2);
171 cmd2.Parameters.Add( new SqlParameter( " @1 " , id));
172 object hasChild = cmd2.ExecuteScalar();
173 if (Convert.ToInt32(hasChild) != 0 )
174 recursion(id, level + 1 );
175
176 conn2.Close();
177 }
178
179 dr.Close();
180 conn.Close();
181 }
182 }
183 }
184

 

 

转载于:https://www.cnblogs.com/assassinx/archive/2010/08/27/1809659.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于BP算法的手写数字识别是一种常见的机器学习任务。下面是一个简单的基于Python的手写数字识别代码示例: ```python import numpy as np # 定义sigmoid函数 def sigmoid(x): return 1 / (1 + np.exp(-x)) # 定义神经网络类 class NeuralNetwork: def __init__(self, input_size, hidden_size, output_size): self.input_size = input_size self.hidden_size = hidden_size self.output_size = output_size # 初始化权重 self.W1 = np.random.randn(self.input_size, self.hidden_size) self.W2 = np.random.randn(self.hidden_size, self.output_size) def forward(self, X): # 前向传播 self.z = np.dot(X, self.W1) self.z2 = sigmoid(self.z) self.z3 = np.dot(self.z2, self.W2) y_hat = sigmoid(self.z3) return y_hat def backward(self, X, y, y_hat, learning_rate): # 反向传播 delta3 = (y_hat - y) * sigmoid(self.z3) * (1 - sigmoid(self.z3)) dW2 = np.dot(self.z2.T, delta3) delta2 = np.dot(delta3, self.W2.T) * sigmoid(self.z2) * (1 - sigmoid(self.z2)) dW1 = np.dot(X.T, delta2) # 更新权重 self.W1 -= learning_rate * dW1 self.W2 -= learning_rate * dW2 def train(self, X, y, epochs, learning_rate): for i in range(epochs): y_hat = self.forward(X) self.backward(X, y, y_hat, learning_rate) def predict(self, X): y_hat = self.forward(X) return np.argmax(y_hat, axis=1) # 示例数据 X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]]) y = np.array([[0], [1], [1], [0]]) # 创建神经网络对象 nn = NeuralNetwork(2, 4, 1) # 训练神经网络 nn.train(X, y, epochs=10000, learning_rate=0.1) # 预测结果 predictions = nn.predict(X) print(predictions) ``` 这段代码实现了一个简单的两层神经网络,使用BP算法进行训练和预测手写数字。其中,`X`是输入数据,`y`是对应的标签。通过调整参数和网络结构,可以提高识别准确率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值