折腾了一下,尝试用Linux,部署mvc3。
分别用过 centos 和 ubuntu ,用ubuntu是比较容易部署的。
操作步骤如下:
一、终端分别如下操作
安装过程中会出一些缺少包的问题。具体要看实际情况安装
对pcre g++ zlib 都有依赖
二、nginx 配置
default
更改成
listen 80;
server_name localhost;
root /var/www/;
location / {
root /var/www/;
index index.html index.htm index.aspx default.aspx;
fastcgi_index /Site;
fastcgi_pass 127.0.0.1:8000;
include /etc/nginx/fastcgi_params;
}
}
启动路径改成 var/www,所以应该创建一个www的文件夹
建议更改一下权限吧,因为这个文件夹需要共享,进行远程部署
最后插入以下两行
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
三、启动服务
通过共享,部署mvc3站点到www上,再启动服务
sudo fastcgi-mono-server4 /applications=/:/var/www/ /socket=tcp:127.0.0.1:8000
按照以上操作,应该已经部署完成了。
但,还有一些部署问题,需要导入mvc的dll支持,导入到站点bin文件夹中
System.Web.ApplicationServices.dll
System.Web.DynamicData.dll
System.Web.Helpers.dll
System.Web.Mvc.dll
System.Web.Routing.dll
System.Web.WebPages.Deployment.dll
System.Web.WebPages.dll
System.Web.WebPages.Razor.dll
还有,数据库读取问题,使用的是mysql,需要导入
进入web.config,在<system.web>下插入
好了一切完成。分享一下自己的部署经验,希望对大家有所帮助,祝你们部署一切顺利o(∩_∩)o
本文链接:Ubuntu(Linux) + mono + xsp4 + nginx +asp.net MVC3 部署,转载请注明。
大数是指计算的数值非常大或者对运算的精度要求非常高,用已知的数据类型无法精确表示的数值。
大数问题主要有以下四种:
==================================
1. 大数相加
2. 大数相乘
3. 大数阶乘
4. 大数幂乘
==================================
下面我们一起解决这四种问题。
Problem 1 大数相加
一般的int,long等类型无法精确表达数值。
我们就考虑以字符串的形式读入这两个数,利用vector来表示这两个数值,
代码:
2 cin>>s1>>s2;
3 int i;
4 vector<int> v1(s1.size()), v2(s2.size());
5 for(i = 0; i < s1.size(); i++)
6 {
7 v1 = s1 - '0';
8 }
9 for(i = 0; i < s2.size(); i++)
10 {
11 v2 = s2 - '0';
12 }
利用vector的空间可以无限扩展,因此我们利用vector来模拟计算这两个数的相加。
根据加法规则我们可以知道,个位与个位相加,十位与十位相加...
代码:
2 {
#将两个数字的位置倒过来,个位数字放在最前面,例如:123,倒过来即为321
3 reverse(v1.begin(),v1.end());
4 reverse(v2.begin(),v2.end());
5 int maxsize = v1.size();
#比较两个数字的位数,找到最长的
6 if(v2.size() > maxsize)
7 {
8 maxsize = v2.size();
9 }
10 vector<int> v3(maxsize);
#记录每一位计算的进位
11 int carry = 0;
12 int i;
13 for(int i = 0; i < maxsize; i++)
14 {
15 int t = carry;
16 if(i < v1.size())
17 t = t + v1;
18 if(i < v2.size())
19 t = t + v2;
#当相同位置上的数字相加超过10时,应该向高位进位
20 carry = t / 10;
21 v3 = t % 10;
22 }
#若最高位相加之后,需要进位,那么我们需要扩展vector
23 if(carry > 0)
24 v3.push_back(carry);
#最后将vector倒置,可以得到最终的相加结果
25 reverse(v3.begin(),v3.end());
26 return v3;
27 }
Problem 2 大数相乘
例如:
位置: 4 3 2 1 0
数值1: 4 3 2
数值2: * 4 5
------------------------------------
结果: 20 15 10
16 12 8
-----------------------------------
16 32 23 10
-----------------------------------
1 9 4 4 0
从上面的例子中我们可以看出位置i和位置j的结果放在i+j的位置,最后再依次进行进位操作。
代码:
这里要注意初始结果申请的空间,最后在输出的时候需要进行处理。
2 {
3 reverse(v1.begin(),v1.end());
4 reverse(v2.begin(),v2.end());
5 int maxsize = v1.size();
6 if(v2.size() > maxsize)
7 maxsize = v2.size();
8 maxsize *= 2;
9 vector<int> v3(maxsize, 0);
没有评论:
发表评论