1.n个节点,网络上广播。广播算法:主动发给邻居一条消息。其它节点收到消息后,会给出发给他的邻居外的所有邻居发送一条消息,发完消息后就不再有动作。如果这个网络是一棵树(n-1),完全图,超立方体。。。发送消息的复杂度是多少?
2.12个人排队,前排的比后排的矮,且每排都从左到右有序。问有多少种排法。
3.将windows和unix格式混合的文本文件a.txt转换成纯unix格式的文本文件。
4.通过ssh登陆linux服务器启动一个长时间运行的进程,放在后台运行,做也号:%1,如何避免断开ssh而导致这个进程终止。
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。
文章中有这么一句
disown 示例1(如果提交命令时已经用“&”将命令放入后台运行,则可以直接使用“disown”)
[root@pvcent107 build]# cp -r testLargeFile largeFile &
[1] 4825
[root@pvcent107 build]# jobs
[1]+ Running cp -i -r testLargeFile largeFile &
[root@pvcent107 build]# disown -h %1
6.perl里面声明:open(FILE,mode,file); 操作的描述,下面哪项不正确:
1.FILE可以用变量$file代替。
2.mode可以喝file写在一起,比如open(FILE,'>file')
3.mode 为+< 时,值可以读文件, 不能写,
4.mode可以省略不写。
打开文件的常用方法是:
open(FH, " $filename")
7.循环队列,出队操作后头指针front值。
8.c类地址:192.168.5.0进行子网划分,每个子网10台主机,子网掩码为:
255.255.255.192/224/240/252;
9。n进制下,567*456 = 150216,则n等于多少
10.int my(int a){
static int count =a;
return count+a;
}
printf("%d,%d\n",my(3),my(4))
综合题:
有fav和buy两个日志文件,里面有user_id,item_id,非常大,现在想知道哪些用户在购买了某个产品的同时也收藏了这个商品,输出这些用户,以及这些既被购买又收藏的商品。
10.36层的电梯,只能停在两层,计算,电梯停在哪两层,保证这次乘坐电梯的所有乘客爬楼梯的层数之和最少。
11.测试:工厂生产一批气球,幼儿园预定了500只用于六一儿童节,如果你是工厂的质检员,负责检测气球的质量,写出你的测试方法,测试设计思路及具体的测试用例。
12.设计一个针对购物类网页的抓取系统。购物搜索,为用户提供垂直类的商品信息,但是我们知道,互联网的网页数是含量的,包含有用信息的网页却很少,如何提高效率和精确度?
13.令狐冲对屡次陷害他的师父岳不群毕恭毕敬,。你怎么看待这种行为。
14.用画面来体现你的梦想和未来。
15.JavaScript生成DOM
16,根据html和css画出布局示意图
17.function dosomething()
{
alert(this);
}
element.onclick = dosomething,
element.onclick = function(){dosomething}
直接执行dosomething.
三者执行结果
18.用JavaScript写一个toRGB函数,转换css中常用的颜色编码,要求
alert(toRGB("#000FF")) //输出rgb(0,0,255)
alert(toRGB("taobao")) //输出taobao
alert(toRGB"#GG0000")) //#GG0000
19.javascript 代码,可以再其他地方添加嗲吗
隔五秒钟执行上面的shout方法。
三、快速计算子网掩码的方法
最后介绍三种快速计算机子网掩码的方法。
1. 利用子网数来计算
在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。然后按以下基本步骤进行计算:
第1步,将子网数目转化为二进制来表示;
第2步,取得子网数二进制的位数(n);
第3步,取得该IP地址类的子网掩码,然后将其主机地址部分的的前n位置“1”,即得出该IP地址划分子网的子网掩码。
为了便于理解,现举例说明如下:现假如要将一B类IP地址168.195.0.0划分成27个子网,则它的子网掩码的计算机方法如下(对应以上各基本步骤):
第1步,首先要划分成27个子网,“27”的二进制为“11011”;
第2步,该子网数二进制为五位数,即n = 5;
第3步,将该B类地址的子网掩码255.255.0.0的主机号前5位全部置“1”,即可得到 255.255.248.0,这就是划分成 27个子网的B类IP地址 168.195.0.0的子网掩码。
2. 利用主机数来计算
利用主机数来计算子网掩码的方法与上类似,基本步骤如下:
第1步,将子网中需容纳的主机数转化为二进制;
第2步,如果主机数小于或等于254(因为要去掉保留的两个IP地址),则取得该主机的二进制位数,为n,这里肯定 n8,这就是说主机地址将占据不止8位。
第3步,将255.255.255.255的主机地址位数全部置1,然后从后向前的将n位全部置为 0,即为子网掩码值。
举例如下。如要将一B类IP地址为168.195.0.0的网络划分成若干子网,要求每个子网内有主机数为700台,则该子网掩码的计算方法如下(也是对应以上各基本步骤):
第1步,首先将子网中要求容纳的主机数“700”转换成二进制,得到1010111100。
第2步,计算出该二进制的位数为10位,即n = 10
第3步,将255.255.255.255从后向前的10位全部置“0”,得到的二进制数为“11111111.11111111.11111100.00000000”,转换成十进制后即为255.255.252.0,这就是该要划分成主机数为700的B类IP地址 168.195.0.0的子网掩码。
3. 子网ID增量计算法
其基本计算步骤如下:
第1步,将所需的子网数转换为二进制,如所需划分的子网数为“4”,则转换成成二进制为00000100;
第2步,取子网数的二进制中有效位数,即为向缺省子网掩码中加入的位数(既向主机ID中借用的位数)。如前面的00000100,有效位为“100”,为3位;
第3步,决定子网掩码。如IP地址为B类1129.20.0.0网络,则缺省子网掩码为:255.255.0.0,借用主机ID的3位以后变为:255.255.224(11100000)0,即将所借的位全表示为1,用作子网掩码。
第4步,将所借位的主机ID的起始位段最右边的“1”转换为十进制,即为每个子网ID之间的增量,如前面的借位的主机ID起始位段为“11100000”,最右边的“1”,转换成十进制后为25=32。
第5步,产生的子网ID数为:2m-2 (m为向缺省子网掩码中加入的位数),如本例向子网掩码中添加的位数为3,则可用子网ID数为:23-2=6个;
第6步,将上面产生的子网ID增量附在原网络ID之后的第一个位段,便形成第一个子网网络ID 129.20.32.0;
第7步,重复上步操作,在原子网ID基础上加上一个子网ID增量,依次类推,直到子网ID中的最后位段为缺省子网掩码位用主机ID位之后的最后一个位段值,这样就可得到所有的子网网络ID。如缺省子网掩码位用主机ID位之后的子网ID为255.255.224.0,其中的“224”为借用主机ID后子网ID的最后一位段值,所以当子网ID通过以上增加增量的方法得到129.20.224.0时便终止,不要再添加了。
: 1、vim里怎么换行(命令模式和insert模式)
这个题命令模式下回车和a都不可以。
: 2、两个有序列表连接成一个,最少比较次数
: 3、给一个前缀表达式,求中缀表达式
: 4、-73的补码
: 5、函数f【1001】=0,f【1011】=1,问可以成为f的表达式的是?我选了异或
: 6、一数组和指向该数组的指针,指针自增后,求输出。。。
:
: 问答题:
: 1、100用户,每人好友约10个,如何准实时显示好友状态;当用户增至100万时候,会出现什么问题,你之前的方案是否仍然可行
: 2、javascript写一个排序函数
: 3、javascript写一个函数,每隔五秒调用某个函数
: 4、javascript写一个函数,判断输入的字符串是否有效的email地址,用正则表达式
: 5、html和css方面:给出代码,画出网页大体布局
: 6、评价令狐冲对岳不群的态度
: 7、随便涂鸦,表达你的梦想和未来打算
编程题必做题:
两种编码方式G和U要进行转换,已经有了两种转换函数GtoU(),和UtoG()可以进行转换,但是现在不知道输入的字符串是G还是U编码,如果利用正确,则能得到正确的输出,否则函数返回一个错误值。那么这时就可以调用另外一个函数,即可得到正确的转码。如果默认假设输入的字符串是U编码的,需要转换为G编码的,调用UtoG(), 如果输入是G编码的,则需要再次调用GtoU()。但是如果给的一组字符串都是G编码的,那第一次尝试总是错误的。为了避免这样的问题,有人设计了一个根据先验概率来尝试第一次尝试的算法:对前N次输入都假设字符串是U编码,然后对前N次尝试进行统计,如果U编码的次数大于等于50%,则下一次就假设是U编码,调用UtoG(),否则假设下一次是G编码,并调用GtoU()。
你的任务是计算这样的算法的正确率是多少?
请编写函数 double GorU(int N, int M, string input)
其中N表示当前判断是依据前N次的统计结果。M表示输入的字符串的长度,input为输入的字符串,假设输入只能是字母G和U。
例1:
输入:10,1,”U”
输出:1
输入:2,10,”UGUGGUUGUU”
输出:0.5
根据算法,每次尝试依次为 UUUUUGUUUU
输入:4,14,”UGUGUUGGGGGUUG”
输出:0.428571
根据算法,每次依次尝试为 UUUUUUUUUGGGGU
我写的代码:
#include
using namespace std;
double GorU(int N, int M, string input)
{
int correct = 0, u = 0, cur = 0;
double pct = 0.0;
int *ref = new int[N];
while (cur < M)
{
if (cur < N)
{
if (input[cur] == 'U')
{
++u;
++correct;
ref[cur] = 1;
}
else
ref[cur] = 0;
}
else
{
pct = (double)u/(double)N;
if ((input[cur] == 'U' && pct >= 0.5) || (input[cur] == 'G' && pct < 0.5))
++correct;
if (ref[cur % N] == 1)
--u;
if (input[cur] == 'U')
{
++u;
ref[cur % N] = 1;
}
else
ref[cur % N] = 0;
}
++cur;
}
delete ref;
ref = NULL;
return (double)correct/(double)M;
}