Redian新闻
>
paper help (pdf download)
avatar
paper help (pdf download)# Chemistry - 化学
r*n
1
1.请书写一个程序,将整型变量 x 中数字左右翻转后存到另外一个整型变量 y中,例如 x = 12345 时,y为 54321,x = ‐123 时,y为‐321。其中 x 的个位不为 0。 
     void reverse (int x, int* y); 
(1) 请实现该函数,以上函数原型是用 C语言写的,你可以用你熟悉的语言; 
(2) 请写出一段代码验证该函数在各种情况下的正确性。 
 
2.对集合{1, 2, 3, …, n}中的数进行全排列,可以得到 n!个不同的排列方式。现在我们用字母序把它们列出来,并一一标上序号,如当 n=3 时:
     0.123 
     1.132 
     2.213
avatar
B*a
2
最近心血来潮,想把家里Dell Inspiron 530的东西倒腾到新机箱里,因为Dell的破机
箱散热实在太差,GPU idle都65°了。
昨晚弄了一晚上,本以为很简单的事情,结果现在开不了机(挪窝之前一切正常)。现
象是把电源开关打开以后,主板黄灯闪烁(频率每秒两下大概),摁新机箱电源按钮后
无任何启动现象。分析了一下大概几种可能:
1. 接主板的Front panel connector没接对。偏偏Dell这个主板算是proprietary
design,manual里根本都没说清楚。网上找的Foxconn G33M02也不一定和它一模一样
2. 电源/主板在我拆卸安装的时候弄坏了。这个应该不大可能因为我很小心。另外电源
是后换的Antec EA380,两年以来除了积了点灰以外没有任何问题。
3. 主板某个地方被短路了。今晚回家把所有线都拆掉,只接必需的线试一下。
请问大家还有其他的解释吗?早知道这么麻烦我就不折腾了,唉
avatar
m*q
4
第2题,可以调用next_permuation() k次,复杂度为O(k)
或者用二分法逐个判断每个位置上应该放的字母,复杂度应该
不超过O(lgk)
avatar
a9
5
貌似是主板上的开关没接对?

【在 B****a 的大作中提到】
: 最近心血来潮,想把家里Dell Inspiron 530的东西倒腾到新机箱里,因为Dell的破机
: 箱散热实在太差,GPU idle都65°了。
: 昨晚弄了一晚上,本以为很简单的事情,结果现在开不了机(挪窝之前一切正常)。现
: 象是把电源开关打开以后,主板黄灯闪烁(频率每秒两下大概),摁新机箱电源按钮后
: 无任何启动现象。分析了一下大概几种可能:
: 1. 接主板的Front panel connector没接对。偏偏Dell这个主板算是proprietary
: design,manual里根本都没说清楚。网上找的Foxconn G33M02也不一定和它一模一样
: 2. 电源/主板在我拆卸安装的时候弄坏了。这个应该不大可能因为我很小心。另外电源
: 是后换的Antec EA380,两年以来除了积了点灰以外没有任何问题。
: 3. 主板某个地方被短路了。今晚回家把所有线都拆掉,只接必需的线试一下。

avatar
g*y
6
递归,复杂度O(strlen).
private String find(String input, int k) {
int N = input.length();
if (N == 1) return input;
int i = k/P[N-1];
int j = k%P[N-1];
return input.charAt(i) + find(input.substring(0, i) + input.substring(i+1), j);
}

【在 m**q 的大作中提到】
: 第2题,可以调用next_permuation() k次,复杂度为O(k)
: 或者用二分法逐个判断每个位置上应该放的字母,复杂度应该
: 不超过O(lgk)

avatar
B*a
7
你说哪个开关?24 pin的那个我插了拔拔了插若干次了

【在 a9 的大作中提到】
: 貌似是主板上的开关没接对?
avatar
z*y
8
第二题 我的思路,欢迎大家批评指正,这个方法复杂度是permatation string 长度的平方:
以 N = 5 K=11 为例
1 2 3 4 5
建一个数组 Boolean B[N] 用来标记元素是否已经使用过,初始值为false
建一个数组 Factorial[N] 存阶乘 from 1!~(N-1)!
然后逐位确定数值 对于第i位 (1<=i<=5),使用如下方法确定该位置上的数字:
if (K/Factorial(N-i) == 0)
此时第一个未被使用的数字即应该为i位上的数字

else
int count = K/Factorial(N-i);
此时应该是第(count+1) 个未被使用的数字即应该为i位上的数字
K=K%Factorial(N-i)
avatar
a9
9
机箱面板插到主板上的那个电源开关。

【在 B****a 的大作中提到】
: 你说哪个开关?24 pin的那个我插了拔拔了插若干次了
avatar
z*y
10
另外附上java 写的code
写code的时候发现上面两种情况其实是一种情况
private static void calculatePermutation(int N, int k) {
StringBuilder str = new StringBuilder();
boolean B[] = new boolean[N];
for (int i = 0; i < N; i++) {
int f = factorial(N - i - 1);
int num = k / f + 1;
for (int j = 0; j < N; j++) {
if (B[j] == false) {
num--;
if (num == 0) {
str.append(j + 1);
B[j] = true;
break;
}
}
}
k = k % f;
}
System.out.println(str);
}
avatar
B*a
11
我希望是这个没接对
但昨晚把老机箱的那条线接到安装在新机箱里的主板上,然后现象是一样的

【在 a9 的大作中提到】
: 机箱面板插到主板上的那个电源开关。
avatar
h*d
12
看不懂。。大牛再指点下吧
P[N-1]是什么

substring(i+1), j);

【在 g**********y 的大作中提到】
: 递归,复杂度O(strlen).
: private String find(String input, int k) {
: int N = input.length();
: if (N == 1) return input;
: int i = k/P[N-1];
: int j = k%P[N-1];
: return input.charAt(i) + find(input.substring(0, i) + input.substring(i+1), j);
: }

avatar
a9
13
拿个螺丝刀捅捅主板试试赛

【在 B****a 的大作中提到】
: 我希望是这个没接对
: 但昨晚把老机箱的那条线接到安装在新机箱里的主板上,然后现象是一样的

avatar
g*y
14
P[N-1] = (N-1)!

【在 h**********d 的大作中提到】
: 看不懂。。大牛再指点下吧
: P[N-1]是什么
:
: substring(i+1), j);

avatar
b*l
15
dell电脑问题,电源
avatar
s*y
16
Not familiar java, but have question on this:
why
return input.charAt(i) + find(input.substring(0, i) + input.subs
tring(i+1), j);
but not
return input.charAt(i) + find(input.substring(0, i-1) + input.subs
tring(i+1), j);

substring(i+1), j);

【在 g**********y 的大作中提到】
: 递归,复杂度O(strlen).
: private String find(String input, int k) {
: int N = input.length();
: if (N == 1) return input;
: int i = k/P[N-1];
: int j = k%P[N-1];
: return input.charAt(i) + find(input.substring(0, i) + input.substring(i+1), j);
: }

avatar
B*a
17
具体说说?

【在 b***l 的大作中提到】
: dell电脑问题,电源
avatar
h*d
18


的平方:

【在 z*******y 的大作中提到】
: 第二题 我的思路,欢迎大家批评指正,这个方法复杂度是permatation string 长度的平方:
: 以 N = 5 K=11 为例
: 1 2 3 4 5
: 建一个数组 Boolean B[N] 用来标记元素是否已经使用过,初始值为false
: 建一个数组 Factorial[N] 存阶乘 from 1!~(N-1)!
: 然后逐位确定数值 对于第i位 (1<=i<=5),使用如下方法确定该位置上的数字:
: if (K/Factorial(N-i) == 0)
: 此时第一个未被使用的数字即应该为i位上的数字
:
: else

avatar
h*d
19
貌似后面那个参数是1-based index, not 0-based

【在 s*****y 的大作中提到】
: Not familiar java, but have question on this:
: why
: return input.charAt(i) + find(input.substring(0, i) + input.subs
: tring(i+1), j);
: but not
: return input.charAt(i) + find(input.substring(0, i-1) + input.subs
: tring(i+1), j);
:
: substring(i+1), j);

avatar
g*y
20
Java的substring(begin, end), 不包括end.

【在 s*****y 的大作中提到】
: Not familiar java, but have question on this:
: why
: return input.charAt(i) + find(input.substring(0, i) + input.subs
: tring(i+1), j);
: but not
: return input.charAt(i) + find(input.substring(0, i-1) + input.subs
: tring(i+1), j);
:
: substring(i+1), j);

avatar
s*y
21
Thanks.

【在 g**********y 的大作中提到】
: Java的substring(begin, end), 不包括end.
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。