................不好意思啊
比如:进程数为3,资源类数为1(共12个),各个进程最大需求:10,4,9. 初始分配:5,2,2.应该求解得安全序列为:p1,p0,p2. ----但实际求得“p0,p1,p2”(不对)。
求解啊。
比如:进程数为3,资源类数为1(共12个),各个进程最大需求:10,4,9. 初始分配:5,2,2.应该求解得安全序列为:p1,p0,p2. ----但实际求得“p0,p1,p2”(不对)。
求解啊。
................不好意思啊
比如:进程数为3,资源类数为1(共12个),各个进程最大需求:10,4,9. 初始分配:5,2,2.应该求解得安全序列为:p1,p0,p2. ----但实际求得“p0,p1,p2”(不对)。
求解啊。--------------
主要可能有问题的地方:
$('#btn3').bind('click',function(){
safe();
if(safe_array.length<process){
data="<span style='color:#F00'>不存在安全序列!</span>";
}else{
data="可用的一组安全序列为:<br/>";
for(var i=0;i<safe_array.length;i++){
data+="<span style='color:#FFF'>"+safe_array[i]+"</span>";
if(i<safe_array.length-1)
data+="->";
}
}
--------------------
function safe(){
safe_array=[];
var flag=0;
for(var i=0;i<resource;i++){
work[i]=available[i];
}
for(var i=0;i<process;i++){
finish[i]=false;
}
for(var z=0;z<process;z++){
for(var i=0;i<process;i++){
for(var j=0;j<resource;j++){
if(work[j]-need[i][j]>=0){
flag++;
}
}
if(flag==resource){
if(!finish[i]){
finish[i]=true;
safe_array.push(i);
free(i);
}
}
flag=0;
}
}
}
function free(p){
for(var j=0;j<resource;j++){
work[j]+=allocation[p][j];
}
}
我找到问题了,但还没法解决,请帮帮忙。
$('#btn2').bind('click',function(){
var avai=document.getElementsByName("avai[]");
for(var i=0;i<resource;i++)
available[i]=parseInt(avai[i].value);
data="最大需求资源<br/>";
for(var i=0;i<process;i++){
data+="<span style='color:#00F'>进程"+i+"</span>:";
for(var j=0;j<resource;j++)
data+='<span style="color:#0F0">资源'+j+'</span><input type="text" class="text" onKeyUp="construct();" value="'+Math.floor(Math.random()*available[j])+'" name="c[]"/>';
data+="<br/>";
}
$('#allocation').html(data);
setClaim();
data="已分配资源<br/>";
for(var i=0;i<process;i++){
data+="<span style='color:#00F'>进程"+i+"</span>:";
for(var j=0;j<resource;j++)
data+='<span style="color:#0F0">资源'+j+'</span><input type="text" class="text" onKeyUp="construct();check();" value="'+Math.floor(Math.random()*claim[i][j])+'" name="allo[]"/>';
data+="<br/>";
}
$('#claim').html(data);
$('#step3').show();
construct();
});
--------------------------
问题在那两句“...value="'+Math.floor(Math.random()..."现在不要随机数,要手动输入页面的数值,用val()返回?还是用js给输入框加id再返回。乱了吧,帮改改吧
<div id = "aa">
<input type = "text" value = ""/>
<input type = "text" value = ""/>
<input type = "text" value = ""/>
<input type = "text" value = ""/>
<input type = "text" value = ""/>
</div>
<div id = "get">get</div>
</body>
<script src = "js/jquery.js"></script>
<script type="text/javascript">
$("#get").click(function(){
var input = [],
value = "";
$("#aa input").each(function(){
//遍历id=aa下面的所有的input,然后使用下面的一句获取input的输入值,并存入value
value = $(this).value;
input.push(value);
//把value存入input数组,就可以获取到所有的input的输入值了。
});
});
</script>我不是太能看懂你想要表达的意思,所以很不好意思如果你能知道,我只能理解你想要获取input输入的值,然后存入到一个数组,然后再按照你之前的算法去执行,这里我只能写个例子了,我看你的input也是没有用id表示的,只有父元素有一个标签是有id的,所以结构应该和你的差不多,你按照这个例子试着改改。最后的值,是被放入了名称为input的数组了。
这个你自己再取名吧,把取到的值,放入相应的数组,就可以执行你之前的操作了。