YOSEMITE 10.10 安装记录

Yosemite 10.10出来后,跟风安装了,但是总有各种各样的问题,比如键盘无效 声卡没法驱动等等,与10.9.5有很多不同的地方.
折腾了好几天终于算是弄好了.
自己将步骤记录一下,以后备用:

1. 下载

  • 下载pcbeta论坛’七月流火’大神的u盘版yosemite(pcbeta链接),由于只提供了1021版本,需要自己转换成没有重装bug的1024版本.

  • 在windows下运行smartvs.exe,打开1021 to 1024.svf,然后根据提示找到”黑苹果安装U盘.20141021.七月流火.10.10.dmg”(md5:82D2EBAC6FA794FD3147D0BD40371FCD),然后提取出”黑苹果安装U盘.20141024.七月流火.10.10.dmg”(md5:27F84982358D7C06AE2339EA950D7E6B)

    有很多朋友找不到下载地址,我提供一个下载:

    http://yunpan.cn/csi9ua7hMJatw 提取码:383f

  • 运行transmac.exe, 将七月流火的yosemite恢复到u盘上.

2.分区

  • 用10.9.3的u盘启动电脑,进入winpe,讲要安装黑苹果的硬盘分成两个分区,第一个分区大小为1g,剩下是第二个盘.
  • 运行diskgenius, 用分区克隆工具将u盘的boot分区克隆到第一个分区.
    更换成10.10的安装u盘

3. 安装

  • 重启电脑, 按del进入bios,硬盘模式改成achi,关闭vt-x
    选择u盘启动, 进入启动界面选择clover,然后选择安装10.10,
    图形界面出现后,选择’硬盘工具’,将前面分好的第二个分区格式化成’MAC OS 扩展(日志)’
  • 开始安装10.10,一步一步next到底.
    安装完成,重启,u盘启动,选择clover,选择硬盘mac启动.之后输入用户名密码,不要选择联网.

4. 驱动和设置

  • 运行MultiBeast,选择drivers-network-realtek- realtekRTLxx v0.0.90,然后build,重启
    下载cover2953的Mac 版 MBR+GPT 分区专用 pkg 安装包(下载链接),解压缩安装到硬盘的启动盘中.将10.10安装u盘的efi拷贝到第一个分区中替换原来的.这样就可以硬盘直接启动clover了.
  • 下载运行Clover Configurator,打开第一个分区也就是启动分区中的config.plist,
  • 选择Boot选项,然后勾选kext-dev-mode=1,
  • 选择Devices选择,在Audio处填入1,保存
  • 重新运行MultiBeast,选择drivers-atheros,然后勾选ALC887/888b current v100302 和 optional efi installed bootloader support,选择build,重启
  • 系统偏好设置—声音—输出,选择内置扬声器.这样就有声音了.
    声卡驱动步骤主要参考pcbeta论坛的帖子,请参考链接

5. 其他类似以前写的.

挑战Python难题答案汇总

pythontip 网站的挑战python题目中有些很难和需要算法来解出.

9:给你两个正整数a和b, 输出它们的最大公约数。

解题思路:用辗转相除法

1
2
3
4
5
6
7
if a < b:
a, b = b, a
while b:
a, b = b, a % b
print a

11:给你一个正整数列表 L, 如 L=[2,8,3,50], 输出L内所有数字的乘积末尾0的个数,如样例L的结果为2.(提示:不要直接相乘,数字很多,可能溢出)

思路: 利用每个数字包含2和5的个数来判断,存在一对2 * 5 就是一个0

1
2
3
4
5
6
7
8
9
10
11
a, b = 0, 0
for i in L:
j = i
while i % 2 == 0:
i /= 2
a += 1
while j % 5 == 0:
j /= 5
b += 1
print min(a, b)

12:给你一个正整数列表 L, 如 L=[2,8,3,50], 判断列表内所有数字乘积的最后一个非零数字的奇偶性,奇数输出1,偶数输出0. 如样例输出应为0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
a, b = 0, 0
for i in L:
j = i
while i % 2 == 0:
i /= 2
a += 1
while j % 5 == 0:
j /= 5
b += 1
if a > b:
print 0
else:
print 1

13: 光棍们对1总是那么敏感,因此每年的11.11被戏称为光棍节。鄙人光棍几十载,光棍自有光棍的快乐。让我们勇敢面对光棍的身份吧,

现在就证明自己:给你一个整数a,数出a在二进制表示下1的个数,并输出。

1
2
3
4
5
count = 0
while a:
count += a % 2
a /= 2
print count

20:信息加密

给你个小写英文字符串a和一个非负数b(0<=b<26), 将a中的每个小写字符替换成字母表中比它大b的字母。

这里将字母表的z和a相连,如果超过了z就回到了a。例如a=”cagy”,b=3, 则输出 fdjb

1
2
3
4
5
6
7
8
out_string = ''
for i in a:
if ord(i) + b <= ord('z'):
out_string += chr(ord(i)+b)
else:
out_string += chr(ord(i)+b-26)
print out_string

给定数字N的阶乘N!的末尾有多少个0

当n到二三十时候,N!已经非常大了,会溢出.
肯定不能用直接计算出阶乘的方式来统计0的个数.

通常用1到n的数字中,每个数字分解出2和5的个数,因为2 * 5 = 10
因为2个数非常多,因此只要算出5的个数就可以了

1
2
3
4
5
6
7
def zero_num(N):
count = 0
for j in range(1, N + 1):
while j % 5 == 0:
j /= 5
count += 1
return b

计算素数比较快的方法

计算素数里面除数最大值用(int(prime ** 0.5) +1) ,最好不要用(prime / 2 + 1).在素数值非常大的时候,这两者差距非常明显.
比如104729的开方值:323
除以2的值是52365

再就是尽量用函数返回Ture Flase的判断,

例如: 求第10000个素数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
prime = 2
number = 4
def is_prime(num):
for x in range(2, int((num ** 0.5)) + 1):
if num % x == 0:
return False
return True
while 1:
if is_prime(number):
prime += 1
if prime == 10000:
break
number += 1
print number

用时0.5秒得出结果:104729

如果是

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
prime = 2
number = 4
def is_prime(num):
for x in range(2, int((num / 2)) + 1):
if num % x == 0:
return False
return True
while 1:
if is_prime(number):
prime += 1
if prime == 10000:
break
number += 1
print number

用时42秒,得出结果104729

如果是

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
prime = 2
number = 4
while 1:
flag = 0
for i in range(2, int(number ** 0.5) + 1):
if number % i == 0:
flag = 1
if flag == 0:
prime += 1
if prime == 10000:
break
number += 1
print number

用时3.0秒,得出结果104729