2020-03-24 360笔试题

1、DNA编辑。大概题意是:
输入两条特殊的DNA,每个都只由A、T组成,两条DNA长度相同。
编辑时有两种操作:
第一种:可以把A改成T,也可以把T改成A;
第二种:在本条DNA内把A、T互换,
问把第一条DNA改成第二条DNA一毛一样,需要的操作次数。
比如:
样例输入:
ATTTAA
TTAATT
输出:3
解释:需要3次,第一次把ATTAA中的A改成T ---->TTTTAA,然后两条DNA长这样:
TT TT AA
TT AA TT
下面是互换操作:
第一次互换:TT T T A A (第二条:TTAATT)
第二次互换:TT A T TA (第二条:TTAATT)

思路:
遍历两条DNA,记录同样下标,第一条中为A,第二条中为T的个数countAT,
记录同样下标,第一条中为T,第二条中为A的个数countTA,
取这两个的最大值。
(这个是100%ac的放心食用)

if __name__ == "__main__":
    # ATTTAA
    # TTAATT
    dna1 = input()
    dna2 = input()
    countAT,countTA = 0,0
    for i in range(len(dna1)):
        if dna1[i] == 'A' and dna2[i] =='T':
            countAT +=1
        elif dna1[i] == 'T' and dna2[i] =='A':
            countTA += 1
    if countAT > countTA:
        print(countAT)
    else:
        print(countTA)

大神代码7行搞定Orz
https://blog.csdn.net/m0_38065572/article/details/105082562

origin=input()
target=input()
ori={'A':0,'T':0}
for o,t in zip(origin,target):
    if o!=t:
        ori[o]+=1
print(max(ori['A'],ori['T']))

2、中奖
A、B俩人抽奖。n张中奖票,m张不中奖票。A、B轮流抽,有人抽中就结束。抽过的奖票就丢掉。B每次抽之后,要再抽一次,再抽的这张如果中了,不算B胜利。
如果A先抽,求A胜利的概率。
输入两个数字n、m,n是中奖票的数量,m是不中奖票数量,要求输出A获胜的概率,4位小数。
输入样例:2 3
输出:0.6000

(还没找到用dp做的大佬的题解,我暂时不太会dp,先看懂这个,等会了dp再更)

大佬的题解,思路懂了但是range范围还没懂明天继续。。

大佬题解:https://www.nowcoder.com/discuss/390708?type=all&order=time&pos=&page=1

image.png

照着写了py版本:

if __name__ == "__main__":
    sum = 0
    n,m = map(int,input().split())
    for i in range(int((m+n)/2)):
        res = float(n/(m+n-2*i))
        for j in range(2*i):
            res *= float((m - j)/(n+m-j))
        print('i = %.4f, res = %.4f' %(i,res))
        sum += res
    print("%.4f" %sum)

太长不看预警

大佬的思路是这样的:

for i in range(int((m+n)/2))

这里的i是轮次,
比如i=0,就是第一轮A中奖;i=1,第二轮A中奖
至于为什么是(m+n)/2 我也在想为什么不是/3 ……

res = float(n/(m+n-2*i))

res是在第i+1轮时,A中奖的概率。比如i=1时,res就是在A在第二轮抽中奖的概率,就是A在第一轮不中奖且B在第一轮不中奖且A在第二轮中奖!
那有小伙伴就要问了(也是昨天困扰我的问题),因为每轮B如果抽的不是奖票,会再抽走一张。那为什么可以简单粗暴用\frac{n}{m+n-2i}来表示,这式子看起来是中奖票的数量除以本轮还剩票的数量,但本轮还剩的为什么是所有减去2i,明明B每轮如果第一次没抽中,要再抽一张,就是要抽两张,那每轮A和B一共耗费了3张奖票呀?

接下来举个例子

假如2张奖票,3张非奖票,那么

  1. A第一轮中奖概率是2/5
  2. A在第二轮抽中奖的概率,就是A在第一轮不中奖且B在第一轮不中奖且A在第二轮中奖:(3/5) * (2/4)* (A在第二轮中奖)
    A在第二轮中奖有2种情况
  • B第一轮丢了一张中奖票的情况下A在第二轮中奖:
    2/3 * 1/2
  • B第一轮丢了一张非奖票的情况下A在第二轮中奖
    1/3 * 2/2
    把两种情况加起来2/3 * 1/2 +1/3 * 2/2 = 2/3 !
    2/3 就是 中奖票数量/本轮还剩所有票数量
接下来是不推一下不死心的推导

奖票n
如果B上一轮丢的是奖票: \frac{n}{m+n-2i}
A本轮中奖概率:\frac{n}{m+n-2i}* \frac{n-1}{m+n-2i-1}
如果B上一轮丢的不是奖票: \frac{m-2i}{m+n-2i}
A本轮中奖概率:
\frac{m-2i}{m+n-2i}* \frac{n}{m+n-2i-1}
那么A本轮中奖概率:
\frac{n}{m+n-2i}* \frac{n-1}{m+n-2i-1}+ \frac{m-2i}{m+n-2i}* \frac{n}{m+n-2i-1}
=\frac{n(n-1)+(m-2i)n}{(m+n-2i)(m+n-2i-1)}
=\frac{n(n-1+m-2i)}{(m+n-2i)(m+n-2i-1)}

= \frac{n}{m+n-2i}

好这个式子就结束了

for j in range(2*i):
res *= float((m - j)/(n+m-j))

通过上面的推导我们知道了A在本轮中奖的概率,那还差前面几轮的概率这个题就妥了,即A在前面轮不中奖且B在前面轮也不中奖(这样游戏才能继续,A才能在本轮中奖),j就是来求大家在前面都不中奖概率的。
比如i=1的时候,游戏是第二轮,j=0,1 两个res乘起来,意思是A、B在第一轮不中奖的概率相乘。因为A、B都是人没什么区别,所以直接res就自乘了,也可以理解成前面操作了几次都没中奖的概率。j=0,1就是操作了两次。
m - j:是操作了j+1次之后,非奖票的数量(比如j=0,就是第一次的时候,非奖票有m张,j=1就是第二次的时候,非奖票有m-1张)
n+m-j :是操作了j+1次之后,所有奖票的数量(比如j=0,就是第一次的时候,所有奖票的有n+m张,j=1就是第二次的时候,非奖票有n+m-1张,因为第一次的时候已经抽走1张啦)

如果i=2,就是游戏进行到第三轮了,j=0,1,2,3 就是第一轮A不中奖,第一轮B不中奖,第二轮A不中奖、第二轮B不中奖。

sum += res

把每个i得到的res相加,意思就是A在所有可能的轮次中奖的概率之和。

PS.关于大佬代码现在我还没想通的是i的范围,想通了我再来更 。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容