自分配算法
㈠ 华为ii代信道分配算法实现了以下哪些信道分配
线蜂窝移通信系统信道配技术主要3类:固定信道配(FCA)、态信道配(DCA)及随机信道配(RCA) FCA优点信道管理容易信道间干扰易于控制;缺点信道佳化使用频谱信道效率低且各接入系统间流量统控制造频谱浪费必要使用态信道配并配合各系统间做流量整合控制提高频谱信道使用效率FCA算使蜂窝网络随流量变化变化提信道借用案(Channel borrowing scheme)信道预定借用(BCO)向信道锁定借用(BDCL)信道借用算思想邻居蜂窝用信道用本蜂窝达资源利用 DCA根据同划标准划同配算通DCA算两类:集式DCA布式DCA集式DCA般位于移通信网络高层线网络控制器(RNC)由RNC收集基站(BS)移站(MS)信道配信息;布式DCA则由本决定信道资源配减少RNC控制复杂性该算需要系统状态解根据DCA同特点DCA算3种:流量自适应信道配、再用划信道配及基于干扰态信道配算等DCA算基于神经网络DCA基于隙打(Time slot scoring)DCA打包(MP)算同于FCADCA算另类信道配算DCA算态新呼叫配信道信道用完新呼叫阻塞MP算思想:假设相邻蜂窝内已经新呼叫配信道且信道已经用完倘若新呼叫请求信道MP算(MPA)两相邻蜂窝内进行呼叫打包信道内剩另信道配给新呼叫 RCA减轻静态信道较差信道环境(深衰落)随机改变呼叫信道每信道改变干扰独立考虑使纠错编码交织技术取所需QoS需要通断改变信道获足够高信噪比 FCA优点信道管理容易信道间干扰易于控制;缺点信道佳化使用频谱信道效率低且各接入系统间流量统控制造频谱浪费必要使用态信道配并配合各系统间做流量整合控制提高频谱信道使用效率FCA算使蜂窝网络随流量变化变化提信道借用案(Channel borrowing scheme)信道预定借用(BCO)向信道锁定借用(BDCL)信道借用算思想邻居蜂窝用信道用本蜂窝达资源利用 DCA根据同划标准划同配算通DCA算两类:集式DCA布式DCA集式DCA般位于移通信网络高层线网络控制器(RNC)由RNC收集基站(BS)移站(MS)信道配信息;布式DCA则由本决定信道资源配减少RNC控制复杂性该算需要系统状态解根据DCA同特点DCA算3种:流量自适应信道配、再用划信道配及基于干扰态信道配算等DCA算基于神经网络DCA基于隙打(Time slot scoring)DCA打包(MP)算同于FCADCA算另类信道配算DCA算态新呼叫配信道信道用完新呼叫阻塞MP算思想:假设相邻蜂窝内已经新呼叫配信道且信道已经用完倘若新呼叫请求信道MP算(MPA)两相邻蜂窝内进行呼叫打包信道内剩另信道配给新呼叫 RCA减轻静态信道较差信道环境(深衰落)随机改变呼叫信道每信道改变干扰独立考虑使纠错编码交织技术取所需QoS需要通断改变信道获足够高信噪比
㈡ 求平均分配算法
先将所有人的钱求和,得到sum1
然后用sum1加上你要分的钱(900),得到sum
再用sum除以总人数n,得到平均数a
最后每个人得到的钱应该是a-mi,mi为第i个人原有的钱。
注:mi>a的就不分了,当然也不能剥夺他原有的钱。
㈢ 求一分配算法
要给分哦。。
/**
*
* 100斤橘子售价是80元,另外150斤橘子售价是85元。来了n个人,按照顺序买橘子,先来的肯定是买便宜的橘子,如a买了50斤,那么这50斤的价格全是80元
* ,b要买130斤,那么其中50斤价格是80元,剩下的80斤价格是85元,c买了70斤,那么价格肯定是85元,求自动分配价格的算法。多谢
*
*/
public class Test938 {
public static void main(String[] args) {
List<Orange> list = new ArrayList<Orange>();
list.add(new Orange(80, 100));
list.add(new Orange(90, 200));
list.add(new Orange(85, 140));
// 将集合中元素按价格从低到高排列
Collections.sort(list, new Comparator<Orange>() {
@Override
public int compare(Orange o1, Orange o2) {
return o1.getPrice() - o2.getPrice();
}
});
sell(50,list);
sell(130,list);
sell(70,list);
sell(300,list);
}
/**
*
* @param count 要卖出的斤数
* @param list 当前的存货
*/
private static void sell(int count,List<Orange> list){
System.out.println("该用户买橘子:"+count+"斤");
List<Orange> sellList=new ArrayList<Orange>();
List<Orange> delList=new ArrayList<Orange>();
Iterator<Orange> it=list.iterator();
Orange or=null;
int temcount=0;
while(it.hasNext()){
or=it.next();
temcount=or.getTotal();
if(temcount>count){
or.setTotal(temcount-count);
sellList.add(new Orange(or.getPrice(),count));
count=0;
break;
}else if(temcount==count){
delList.add(or);
sellList.add(new Orange(or.getPrice(),count));
count=0;
break;
}else {
delList.add(or);
count-=temcount;
sellList.add(new Orange(or.getPrice(),temcount));
}
}
// 更新存货
for(Orange o:delList){
list.remove(o);
}
for(Orange o:sellList){
System.out.println(" 价格:"+o.getPrice()+"<-->"+o.getTotal()+"斤");
}
if(count>0){
System.out.println(" 橘子缺货:"+count+"斤");
}
}
}
class Orange {
private int price;
private int total;
public Orange(int price, int total) {
this.price = price;
this.total = total;
}
public int getPrice() {
return price;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
}
㈣ 求关于分配人员的算法
给个思路吧,代码懒得写了。统计拥有a技能的人数a1人,然后把a1平均分配,然后在剩下的人中统计b技能人数b1,再分别统计出五组b技能的人数,把b1分配到五组中,使得五组b的技能的人数尽可能平均,cde技能如此按照b的方法分配。
㈤ 信道动态分配技术是什么,有什么特点
在无线蜂窝移动通信系统中,信道分配技术主要有3类:固定信道分配(FCA)、动态信道分配(DCA)以及随机信道分配(RCA)。 FCA的优点是信道管理容易,信道间干扰易于控制;缺点是信道无法最佳化使用,频谱信道效率低,而且各接入系统间的流量无法统一控制从而会造成频谱浪费,因此有必要使用动态信道分配,并配合各系统间做流量整合控制,以提高频谱信道使用效率。FCA算法为使蜂窝网络可以随流量的变化而变化提出了信道借用方案(Channel borrowing scheme),如信道预定借用(BCO)和方向信道锁定借用(BDCL)。信道借用算法的思想是将邻居蜂窝不用的信道用到本蜂窝中,以达到资源的最大利用。 DCA根据不同的划分标准可以划分为不同的分配算法。通常将DCA算法分为两类:集中式DCA和分布式DCA。集中式DCA一般位于移动通信网络的高层无线网络控制器(RNC),由RNC收集基站(BS)和移动站(MS)的信道分配信息;分布式DCA则由本地决定信道资源的分配,这样可以大大减少RNC控制的复杂性,该算法需要对系统的状态有很好的了解。根据DCA的不同特点可以将DCA算法分为以下3种:流量自适应信道分配、再用划分信道分配以及基于干扰动态信道分配算法等。DCA算法还有基于神经网络的DCA和基于时隙打分(Time slot scoring)的DCA。最大打包(MP)算法是不同于FCA和DCA算法的另一类信道分配算法。DCA算法动态为新的呼叫分配信道,但是当信道用完时,新的呼叫将阻塞。而MP算法的思想是:假设在不相邻蜂窝内已经为新呼叫分配了信道,且此时信道已经用完,倘若这时有新呼叫请求信道时,MP算法(MPA)可以将两个不相邻蜂窝内正在进行的呼叫打包到一个信道内,从而把剩下的另一个信道分配给新到呼叫。 RCA是为减轻静态信道中较差的信道环境(深衰落)而随机改变呼叫的信道,因此每信道改变的干扰可以独立考虑。为使纠错编码和交织技术取得所需得QoS,需要通过不断地改变信道以获得足够高的信噪比 FCA的优点是信道管理容易,信道间干扰易于控制;缺点是信道无法最佳化使用,频谱信道效率低,而且各接入系统间的流量无法统一控制从而会造成频谱浪费,因此有必要使用动态信道分配,并配合各系统间做流量整合控制,以提高频谱信道使用效率。FCA算法为使蜂窝网络可以随流量的变化而变化提出了信道借用方案(Channel borrowing scheme),如信道预定借用(BCO)和方向信道锁定借用(BDCL)。信道借用算法的思想是将邻居蜂窝不用的信道用到本蜂窝中,以达到资源的最大利用。 DCA根据不同的划分标准可以划分为不同的分配算法。通常将DCA算法分为两类:集中式DCA和分布式DCA。集中式DCA一般位于移动通信网络的高层无线网络控制器(RNC),由RNC收集基站(BS)和移动站(MS)的信道分配信息;分布式DCA则由本地决定信道资源的分配,这样可以大大减少RNC控制的复杂性,该算法需要对系统的状态有很好的了解。根据DCA的不同特点可以将DCA算法分为以下3种:流量自适应信道分配、再用划分信道分配以及基于干扰动态信道分配算法等。DCA算法还有基于神经网络的DCA和基于时隙打分(Time slot scoring)的DCA。最大打包(MP)算法是不同于FCA和DCA算法的另一类信道分配算法。DCA算法动态为新的呼叫分配信道,但是当信道用完时,新的呼叫将阻塞。而MP算法的思想是:假设在不相邻蜂窝内已经为新呼叫分配了信道,且此时信道已经用完,倘若这时有新呼叫请求信道时,MP算法(MPA)可以将两个不相邻蜂窝内正在进行的呼叫打包到一个信道内,从而把剩下的另一个信道分配给新到呼叫。 RCA是为减轻静态信道中较差的信道环境(深衰落)而随机改变呼叫的信道,因此每信道改变的干扰可以独立考虑。为使纠错编码和交织技术取得所需得QoS,需要通过不断地改变信道以获得足够高的信噪比
㈥ 关于如何用 Excel 按百分比分配货物的自动计算方法
这个很简单啊,
总数量在A1
前面四个店 公式 =ROUND(A1*对应的比例,0)
最后一个 =A1-前面四个店的和
㈦ C++ 100000! 的算法,要求用数组,数组大小根据结果大小自动分配~
用数组,分段存放,有点像逻辑电路里面加法器的思路。这是我们去年的课程设计题目,下面是代码
#include<iostream>
#include<string>
using namespace std;
const int Max=1000;
class BigNum
{
public:
BigNum(int a)
{
int i,j=0;
for(i=0;i<Max;i++)
theNum[i]=0;
while(a){
theNum[j]=a%10;
a=a/10;
j++;
}
}
BigNum operator * (const BigNum &x){
BigNum result(0);
for(int i=0;i<Max;i++)
{
BigNum temp(0);
if(!x.theNum[i]) continue;
for(int j=0;j<x.theNum[i];j++)
temp=temp+*this;
result=result+(temp<<i);
}
return result;
}
BigNum operator<<(int x){
for(int i=Max-1;i>Max-1-x;i--)
if(theNum[i]){
cerr<<"error!"<<endl;
system("pause");
exit(1);
}
for(int j=Max-1;j>=x;j--)
theNum[j]=theNum[j-x];
for(int k=x-1;k>=0;k--)
theNum[k]=0;
return *this;
}
BigNum operator+(const BigNum & x)const{
BigNum temp(0);
int fore=0;
for(int i=0;i<Max;i++)
{
int j=theNum[i]+x.theNum[i]+fore;
temp.theNum[i]=j%10;
fore=j/10;
}
return temp;
}
friend ostream& operator<<(ostream & out,const BigNum x){
int i=Max-1;
while(!x.theNum[i])i--;
for(int j=i;j>=0;j--)
out<<(int)x.theNum[j];
return out;
}
private:
char theNum[Max];
};
BigNum The_Result(int n)
{
if(n==0) return 1;
else return BigNum(n)*The_Result(n-1);
}
int main()
{
int n;
cin>>n;
cout<<n<<"!="<<The_Result(n)<<endl;
return 0;
}
㈧ 随机分配算法与银行家算法的区别
随机分配算法:当进程申请资源时,如果系统中现存资源数能满足进程的当前资源申请量,就把资源能会产生死锁。随机分配算法很容易进入死锁.
银行家分配算法,顾名思义是来源于银行的借贷业务,一定数量的本金要应多个客户的借贷周转,为了防止银行加资金无法周转而倒闭,对每一笔贷款,必须考察其是否能限期归还。在操作系统中研究资源分配策略时也有类似问题,系统中有限的资源要供多个进程使用,必须保证得到的资源的进程能在有限的时间内归还资源,以供其他进程使用资源。如果资源分配不得到就会发生进程循环等待资源,个进程都无法继续执行下去的死锁现象。
把个进程需要和已占有资源的情况记录在进程控制中,假定进程控制块PCB其中“状态”有就绪态、等待态和完成态。当进程在处于等待态时,表示系统不能满足该进程当前的资源申请。“资源需求总量”表示进程在整个执行过程中总共要申请的资源量。显然,,每个进程的资源需求总量不能超过系统拥有的资源总数, 银行算法进行资源分配可以避免死锁.
2.算法描述
随机分配算法:
设进程I提出请求Request[N],则银行家算法按如下规则进行判断
(1) 如果Request[N]<=AVAILABLE,则转(2);否则,出错。
(2) 系统分配资源,修改相关数据:
AVAILABLE=AVAILABLE-REQUEST
ALLOCATION=ALLOCATION+REQUEST
NEED=NEED-REQUES
(3) 系统执行安全性检查
银行家算法:
设进程I提出请求Request[N],则银行家算法按如下规则进行判断。
(1)如果Request[N]<=NEED[I,N],则转(2);否则,出错。
(2)如果Request[N]<=AVAILABLE,则转(3);否则,出错。
(3)系统试探分配资源,修改相关数据:
AVAILABLE=AVAILABLE-REQUEST
ALLOCATION=ALLOCATION+REQUEST
NEED=NEED-REQUEST
(4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。
3.安全性检查
(1)设置两个工作向量WORK=AVAILABLE;FINISH[M]=FALSE
(2)从进程集合中找到一个满足下述条件的进程,
FINISH[i]=FALSE
NEED<=WORK
如找到,执行(3);否则,执行(4)
(3)设进程获得资源,可顺利执行,直至完成,从而释放资源。
WORK=WORK+ALLOCATION
FINISH=TRUE
GO TO 2
(4)如所有的进程Finish[M]=true,则表示安全;否则系统不安全。
3.数据结构
假设有M个进程N类资源,则有如下数据结构:
#define W 10
#define R 20
int M ; //总进程数
int N ; //资源种类
int ALL_RESOURCE[W]; //各种资源的数目总和
int MAX[W][R]; //M个进程对N类资源最大资源需求量
int AVAILABLE[R]; //系统可用资源数
int ALLOCATION[W][R]; //M个进程已经得到N类资源的资源量
int NEED[W][R]; //M个进程还需要N类资源的资源量
int Request[R]; //请求资源个数
4.主要函数说明
void showdata(); //主要用来输出资源分配情况
void changdata(int); //主要用来输出资源分配后后的情况
void rstordata(int); //用来恢复资源分配情况,如:银行家算法时,由于分配不安全
则要恢复资源分配情况
int chkerr(int); //银行家分配算法的安全检查
int chkerr2(int) ; //随机分配算法安全检查
void bank() ; //银行家算法
void randomallocation(); //随机分配算法
㈨ 什么是最优适应分配算法
分区分配算法(Partitioning Placement Algorithm) ,共有3种。分别为最佳适应算法、首次适应算法、循环首次适应算法。
1、最佳适应算法(Best Fit):
它从全部空闲区中找出能满足作业要求的、且大小最小的空闲分区,这种方法能使碎片尽量小。为适应此算法,空闲分区表(空闲区链)中的空闲分区要按大小从小到大进行排序,自表头开始查找到第一个满足要求的自由分区分配。该算法保留大的空闲区,但造成许多小的空闲区。
2、首次适应算法(First Fit):
从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法目的在于减少查找时间。为适应这种算法,空闲分区表(空闲区链)中的空闲分区要按地址由低到高进行排序。该算法优先使用低址部分空闲区,在低址空间造成许多小的空闲区,在高地址空间保留大的空闲区。
3、循环首次适应算法(Next Fit):
该算法是首次适应算法的变种。在分配内存空间时,不再每次从表头(链首)开始查找,而是从上次找到空闲区的下一个空闲开始查找,直到找到第一个能满足要求的的空闲区为止,并从中划出一块与请求大小相等的内存空间分配给作业。该算法能使内存中的空闲区分布得较均匀。