看见一道题目解答软件,求解答

一道MATLAB生物问题求解答
人类体细胞内有22对常染色体。每对染色体中有一条来自父方,一条来自母方。通常来说,来自父方和母方的染色体上99.9%的对应位置上遗传物质是相同的,只有不到0.1%的对应位置遗传物质发生了改变。正是这些改变导致了人与人之间的各种不同(包括患遗传病的概率不同)。对应于同一个位置上,如果来自父方和母方的遗传物质均没有发生改变,则组成常见纯合子基因型(如AA);如果父方和母方中一方的遗传物质发生改变,则在子代中形成杂合子基因型(如Aa);如果父方和母方在该位置上均发生了改变,则子代出现少见纯合子基因型(如aa)。对应于不同的人群,染色体上相同位置出现的这三种不同的基因型统称为一个SNP。SNP数据的数学表示形式如图1所示:将病例组(即患遗传病的人群)和对照组(即没有患遗传病的人群)的每个个体称为一个样本,对照组样本的表型(患病与否)用2表示,病例组样本的表型用1表示;SNP数据表示为一个矩阵,每行表示一个样本,每列表示一个SNP;矩阵中的元素表示基因型,1表示常见纯合子基因型,2表示杂合子基因型,3表示少见纯合子基因型,0表示数据缺失。图1
SNP数据的数学表示从这些SNP中寻找到影响遗传病发生的SNP,本质上是一个特征选择问题。(1)data1是一个由100个SNP,病例组1000人,对照组1000人的SNP信息文件,存储格式是.mat,其中class为1行,2000列,表示每个样本患病与否(图1右矩阵的转置),pts为2000行,100列,即SNP矩阵(图1左矩阵)。已知,data1中有1个SNP是导致遗传病发生的关键SNP,请找出是第几个。(2)SNP往往通过交互作用影响遗传病的产生。即,单个SNP对遗传病的影响很小,甚至没有,但它们的组合却可能是该遗传病的关键原因。如图2所示:SNP1和SNP2在不同基因型上的病例数和对照数相同,似乎对表型不起作用,但是当两者联合起来作为一个整体考虑时却是决定表型的一个关键因素:AABB,Aabb,aaBb基因型的样本必为病例;AABb,AaBB,aabb基因型的样本为病例或对照的几率相同;AAbb,AaBb,aaBB基因型的样本必为对照。已知,data2中有2个SNP组成的2阶SNP组合是导致遗传病发生的关键SNP,请找出。图2
SNP交互作用影响遗传病(3)真实情况下,可能情况更为复杂:也许有多个单SNP、SNP组合(SNP组合中SNP的个数不止2个,但不超过5个)共同作用导致遗传病的产生。Data3中有2个单SNP、2个2阶SNP组合、2个3阶SNP组合及1个5阶SNP组合共同作用导致遗传病的产生。请尝试尽量多的找出它们。
这里是编程技术社区,不是生物课
你还没有登录,请先登录或注册慕课网帐号
4839人关注
Copyright (C) 2018 imooc.com All Rights Reserved | 京ICP备 号-2一个关于回调的问题,着急求解啊,请一定帮忙 - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
小弟希望通过调用http的get服务,把返回的response中的某一个link赋值给一个变量然后给后续代码使用。问题是在回调中赋值的结果,在主线程中无法获取。
http.get(options,function(res){
res.on(&data&,function(chunk){
var data_json = JSON.parse(chunk.toString());
var links = data_json.
for (var i = 0;i&links.i++){
if (links[i].rel == &down&){
url_path = links[i].
console.log(1)
var second = new Date().getSeconds();
while (new Date().getSeconds() & second+6);
console.log(url_path);
console.log(2)
上面的代码就是希望把某一个rel为down的连接赋值为url_path, 这个http的操作很快的。我在主线程里面尝试了sleep了6秒钟,但是打印出来的url_path还是为undefined。而且奇怪的事情是,我代码中的打印数字的次序也不是我期望的,竟然是先打印2,再打印1,这个是为什么呢。求解啊,求高人帮忙啊
搞明白同步和异步就知道了
花括号个数好像不匹配诶…
明白同步和异步啊。问题是回调函数是可以获取到外层变量的引用么。能够对外层变量进行赋值啊。可以是为什么我主线程出来的结果还是没有赋值成功的。
因为是异步的,所以不会等待呀。不等待的话,你回调里面的赋值还没执行呢,下面的代码就直接while了,肯定没内容呀。
我在while里面不是等待了六秒钟嘛,而且在console上看出来的确是等待了的,差不多是有6秒钟的样子的。我现在的疑惑是回调的线程是不是是独立,类似操作系统的fork。
你那个while把整个进程给阻塞了,异步根本没机会执行。。。
那么我们如何来等待异步的执行呢,还是说异步的代码调用是不允许在回调里面对外部变量进行赋值的。
肯定需要在异步回调执行后做个动作的。。。
可以这样理解异步:某天你家来了个客人,你想弄杯茶给客人喝,需要做这几个事情:烧水、洗茶杯、泡茶。
阻塞型的做法是:先烧水,一直盯着直到水开了,然后去洗茶杯,然后再泡茶;
如果是异步的话,则是:烧水,反正水一时半会还没开,顺便把茶杯给洗了,如果还有时间的话,跟客人聊聊天,等水烧开了再泡茶。
你的代码中的这部分就相当于一直盯着那个水壶,等水开了想要泡茶,可是茶杯还没洗好,于是杯具了:
var second = new Date().getSeconds();
while (new Date().getSeconds() & second+6);
console.log(url_path);
console.log(2)
你上面的代码可写成这样:
// 这个是回调函数,等获取到url_path后要执行的程序
var callback = function () {
console.log(url_path);
console.log(2)
http.get(options,function(res){
res.on(&data&,function(chunk){
var data_json = JSON.parse(chunk.toString());
var links = data_json.
for (var i = 0;i&links.i++){
if (links[i].rel == &down&){
url_path = links[i].
console.log(1);
// 执行回调函数
callback();
说的有理,不过LZ的问题还是不是出在这里!!
res.on(“data”)是每次有新数据来的时候调用,这样http get获取的不完整数据每次来的时候都执行了同样代码,最后LZ认为获取完整的数据其实是不完整的!
http.get()的回调中这么写:
var data = &&;
res.on(&data&, function(chunk){
res.on(&end&, function(){
var data_json = JSON.parse(data.toString());
//下面自己处理吧
顺便说下,最好还是要监听下&error&事件哦~~
res.on(&error&, function(err){
我根据你的提示下了一个demo测试了一下,
var p = 1;
http.get(options,function(res){
console.log(res.statusCode);
res.on(“data”,function(chunk){
console.log(3);
res.on(“end”,function(){
console.log(4);
结果还是不对的,
&C:\Program Files\nodejs\node.exe& httptest.js
我现在怀疑是我的while循环导致主线程被block了,由于nodejs是单线程的,所以可能那个时候的回调也没有执行。
所以我可以理解为,回调函数其实是在nodejs的主线程里面运行的,只有IO是在单独的线程中运行的。我这样的代码结构,就导致了,回调函数的执行顺序永远在while语句的后面。
可见nodejs不太适合这样的写法。犹豫我是因为拿这个来做一个测试restful的测试框架,需要每次case执行之前去把一个变量赋值。虽然可以把case写道回调中,但是总是会导致代码的可读性变低。
看来nodejs的用途还是有限的。不过可以考虑某些地方用同步的IO来实现。这样业务的逻辑性就可以比较好的保留了。
是你没理解回调,不是nodejs的用途问题。
我表示看到你上面的代码时很诧异,忘记刚开始时自己是怎么转变过来的
你的理解是对的,就是这样,只有一个线程。其实每个异步的“任务”都会塞进一个task queue里,等待main thread pick it up。当前的函数 while(true)了,main thread已经阻塞,自然没有机会pick up task
你这个执行结果没有诡异之处~
说你的主线程被while循环block了,可以这么理解,但是不恰当!
首先nodejs是单线程的,无所谓什么主线程
然后nodejs顺序执行,遇到IO操作就会交给回调处理,然后继续向下运行,你的while循环当然没有IO操作,因此肯定先执行了,又因为执行while循环的时候,nodejs是没有出现等待IO这样的空闲的,所以即使这个时候http get操作已经获取数据完毕,也是得不到处理的机会的,只有等到while循环结束!
看你的执行结果:
第一个1我不知道你是log的什么
第二个200是while循环执行完毕后,处理http get的回调时log的res.status(code),表示数据接收成功
接下的四个3是从接收的数据piping出来的过程,所以要在“data”事件里写data += chunk
piping完数据后,触发end事件,所以最后log的是4~
(有些地方可能我也表述不清,只是说下我的理解!)
lz说main thread的意思是main thread这个概念(在browser里就是ui thread)吧。而且nodejs其他的api的执行是否有起线程又不清楚。。。lz说main thread只是说相对于c++(.node 模块)代码来说,js的执行线程类似main thread吧。
要获取urlpath,还有一个方法,就是用Events,把要处理urlpath的语句放在事件里面,然后events.emitt(‘Event’);
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的介绍一个求解SAT问题的程序SatZ(1)
已有 1912 次阅读
|个人分类:|系统分类:|关键词:SAT SatZ
众所周知SAT问题(SAtisfiability Problem)是逻辑学的一个基本问题,也是算法理论的一个核心问题,众多学者已经为此做出了大量的工作,开发出许多算法程序,称“SAT求解器(SAT solver)”(),这里介绍其中的一个完备算法的程序-SatZ,供感兴趣的网友运行测试实例,以开阔自己的视野。1,介绍SatZ的文章Chu Min LI & Anbulagan, &Heuristics based on unit propagation for satisfiability problems&, in proceedings of 15th International Joint Conference on Artificial Interlligence (IJCAI'97), Morgan Kaufmann Publishers, ISBN 1-, Page 366-371, Japon, 1997.2,程序satz215.c编译程序命令:gcc satz215.c -O3 -o satz215注:在Linux或Unix环境下编译。若编译结果出现“warning”信息,不影响运行。3,实例这里给出二个实例:v200c850g1,v300c1275g1实例文件格式说明:v300c1275g1c germe 1p cnf 300 1275// 300个变元,1275个子句 -99 -212 -219 0// 子句1: ¬x99 v ¬x212 v ¬x219 109 -137 -162 0// 子句2:x109 v ¬x137 v ¬x167…更多的实例见:。4,执行程序在“Mac(2.8 Ghz Intel Core i5) OS X”机器上运行的结果:执行程序:satz215 v300c1275g1****the instance is unsatisfiable *****NB_MONO= 2423, NB_UNIT= 483701, NB_BRANCHE= 11889, NB_BACK= 6071 Program terminated in 1.030 seconds.satz215 v300c.030
683 0 300 806 61652执行程序:satz215 v200c850g1****the instance is satisfiable *********verification of solution is OK****NB_MONO= 104, NB_UNIT= 8159, NB_BRANCHE= 251, NB_BACK= 123 Program terminated in 0.020 seconds.satz215 v200c850g1 0.020 251 123
1 200 850 97 显示可满足实例(v200c850g1)的解:more satx.sol-1 -2 3 -4 5 6 7 8 -9 -10 -11 12 -13 14 -15 -16 17 18 19 20 21 22 -23 -24 -25 -26 27 -28 -29 30 31 32 -33 -34 -35 36 -37 -38 39 -40 41 -42 43 44 -45 46 -47 48 49 -50 -51 52 -53 -54 55 -56 57 -58 59 -60 -61 62 -63 64 -65 -66 -67 -68 -69 70 -71 -72 -73 74 75 -76 77 -78 79 -80 81 -82 -83 84 85 -86 87 88 89 90 91 -92 93 94 95 -96 97 -98 99 -100 101 102 103 -104 -105 106 107 -108 109 110 -111 112 113 114 115 116 -117 118 -119 -120 121 -122 123 124 -125 126 -127 128 129 130 131 132 133 -134 -135 136 137 -138 139 140 141 -142 143 -144 -145 146 -147 148 149 150 -151 -152 153 -154 -155 -156 -157 158 -159 -160 161 162 -163 164 -165 -166 167 -168 -169 -170 171 -172 173 174 -175 -176 177 178 179 180 181 182 183 184 -185 186 187 188 189 -190 191 -192 -193 -194 195 -196 197 198 199 200 & &解的说明:x1=0, x2=0, x3=1, x4=0, …
转载本文请联系原作者获取授权,同时请注明本文来自柳渝科学网博客。链接地址:
上一篇:下一篇:
当前推荐数:1
推荐到博客首页
评论 ( 个评论)
扫一扫,分享此博文
作者的精选博文
作者的其他最新博文
热门博文导读
Powered by
Copyright &小木虫仪器共享
lab.muchong.com
实验样品检测、分析CNAS/CMA认证资质
当前位置:
&【求助】一道自己实验中发现的物理题目,求解!
【求助】一道自己实验中发现的物理题目,求解!
作者 机械化学
水平面上,一个底面半径为R的密封的真空圆桶中装有少量的水,设水分子为理想分子,桶的底和壁均无摩擦,当桶以底的圆心做匀速圆周运动时,角速度为w,那么,水面中心必下降,两边必上升,设此时的速度足以让圆心处无水,桶的高度H足够高,那么,水面最高处和底面圆心的连线,是一条直线还是曲线?如果是直线,那它与桶壁和底形成的直角三角形,角a有多大?如果是曲线,那么曲线方程又是多少?
很经典的流体力学题目。
抛物线,r^2*w^2/(2g) = h,h是水面高度。
&桶的底和壁均无摩擦无摩擦&
&桶的底和壁均无摩擦,当桶以底的圆心做匀速圆周运动时,角速度为w,那么,水面中心必下降,两边必上升...&
如果桶的底和壁均无摩擦,水面应该是平的,
24小时热帖
下载小木虫APP
与700万科研达人随时交流求解答电脑无线无法连接是怎么回事3个回答岛津真琴可能是无线网络问题,可以先用手机看看可不可以连接,如果可以连接,那么问题就出在你的笔记本上,笔记本连接无线网络需要同时设置以下三项:启用无线网卡,开启无线服务,打开无线物理开关 .
末世代哀鸣曲具体步骤如下:
1、当新安装的电脑无法正常上网时,首先要做的是重新启用一下“本地连接”:双击打开“计算机”,右击左侧“网络”图标,选择“属性”项。
2、在打开的“网络和共享中心”窗口中,点击“更改适配器设置”按钮。
3、右击“本地连接”,选项“禁用”项。
4、接着右击“本地连接”,选择“启用”项。
5、当然,如果以上操作方法较繁琐的话,我们可以借用“大势至USB监控程序”(直接网上搜索获取下载地址)来实现快速启用“本地连接”操作。
6、运行该软件,在程序主界面中,勾选“禁用有线网卡”项。
7、接着在取消勾选“禁用有线网卡”项即可。
凤祉实业1:重设你的路由器,按紧路由器上的开关,很小的那个,一般是5-8秒,设置好密码等等。2:笔记本无法连接有很多问题,推荐方法为WIN7上的修复,打开网络和共享中心里面,如果有感叹号和X点一下就修复了。
热门问答123456789101112131415161718192021222324252627282930相关问答3个回答岛津真琴可能是无线网络问题,可以先用手机看看可不可以连接,如果可以连接,那么问题就出在你的笔记本上,笔记本连接无线网络需要同时设置以下三项:启用无线网卡,开启无线服务,打开无线物理开关 ....3个回答小陈CWkw4匪应该是路由器配置不对,开启DHCP或自己手动指定无线网卡IP、网关、dns
无线时尝试ping网关,如果能ping通,再ping外网网站如163。com,...3个回答hebeikelong2011电脑无线连接没有了解决方法如下
1.“开始”-&“运行”,输入“services.msc”然后点击“确定”,打开 Windows的服务列表:
  在服务列表...3个回答厉敬溢你好,大多是硬件接触不良导致的,很可能跟最近天气变化有关系
先把主机后面的插上去的线全部拔掉,
按开机按钮15下,这样做是给主机放静电,有时候天气变化会有静...3个回答紫藤Kings电视的刷新没有调好,有显卡的话必须都插在显卡上,在电脑桌面上点右键,点属性,点连接到投影仪,点扩展或复制看你的要求了,如果这都已经选择好了,你在桌面上点右键,点屏幕分辨率,能能看见...4个回答7013uosq电脑设置了自动休眠时间,可以通过以下方法取消: 1.在开始菜单选择“控制面板” 2.在控制面板设置界面选择“系统与安全” 3.在系统与安全界面选择“更改计算机睡眠时间”。希望我的回...3个回答齐承教 1.首先检查是不是硬件问题导致电脑突然自动关机,如果你不懂硬件设备,建议您拿到专业电脑维修点进行检修,请不要乱拆否则连电脑硬件设备都会被弄坏了。
  2.然后检查电脑...2个回答我飘过great解决办法
1、检查声卡、连接线,以及音箱等设备是否连接正常;运行杀毒软件进行杀毒;
2、右击“我的电脑”----“属性”---“硬件”----“设备管理器”...3个回答贾立彪你好,如果本地连接显示网线被不拔出的话,大多是你电脑网线或网卡的问题。如果本地连接没问题而经常掉线,那大多是网络运营商的问题。如果上述情况都没有出现,还是掉线的话,建议你杀毒。希望...3个回答冷钺25您好,一般无线网络老断网重连主要是以下原因(驱动没问题的话,主要是2)
1. 是否安装的是配套无线网卡驱动
2. 查看无线网络所查找到的可连接...

我要回帖

更多关于 微积分题目及解答 的文章

 

随机推荐