Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_java
提交
cf2361f6
S
skill_tree_java
项目概览
CSDN 技术社区
/
skill_tree_java
通知
43
Star
8
Fork
4
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
4
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
skill_tree_java
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
4
Issue
4
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
cf2361f6
编写于
12月 30, 2021
作者:
HansBug
😆
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dev(hansbug): add override problem
上级
89afb742
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
137 addition
and
1 deletion
+137
-1
data/1.Java初阶/9.控制执行流程/5.函数/config.json
data/1.Java初阶/9.控制执行流程/5.函数/config.json
+2
-1
data/1.Java初阶/9.控制执行流程/5.函数/override.json
data/1.Java初阶/9.控制执行流程/5.函数/override.json
+8
-0
data/1.Java初阶/9.控制执行流程/5.函数/override.md
data/1.Java初阶/9.控制执行流程/5.函数/override.md
+127
-0
未找到文件。
data/1.Java初阶/9.控制执行流程/5.函数/config.json
浏览文件 @
cf2361f6
...
...
@@ -8,7 +8,8 @@
"export"
:
[
"call.json"
,
"parser.json"
,
"permutation.json"
"permutation.json"
,
"override.json"
],
"keywords_must"
:
[
"函数"
,
...
...
data/1.Java初阶/9.控制执行流程/5.函数/override.json
0 → 100644
浏览文件 @
cf2361f6
{
"type"
:
"code_options"
,
"author"
:
"HansBug"
,
"source"
:
"override.md"
,
"notebook_enable"
:
false
,
"exercise_id"
:
"0c7313f92ebf4b299f56ff9e9e80b6a7"
}
\ No newline at end of file
data/1.Java初阶/9.控制执行流程/5.函数/override.md
0 → 100644
浏览文件 @
cf2361f6
# 函数的重写
我们需要编写一个函数
`gaussian`
,使其生成服从正态分布$N
\l
eft(
\m
u,
\s
igma^2
\r
ight)$的随机数。其中$
\m
u$为数学期望,$
\s
igma^2$为方差,关于正态分布可以参考
[
百度百科
](
https://baike.baidu.com/item/%E6%AD%A3%E6%80%81%E5%88%86%E5%B8%83/829892
)
。现已有函数如下:
```
java
import
java.util.Random
;
public
class
TestMain
{
private
static
final
Random
random
=
new
Random
();
private
static
double
gaussian
(
double
mu
,
double
sigma2
)
{
return
Math
.
sqrt
(
sigma2
)
*
random
.
nextGaussian
()
+
mu
;
}
}
```
但上述函数仍然需要我们传入$
\m
u$和$
\s
igma^2$的值,这会在实际使用这一函数的时候带来麻烦。
为了解决这一问题,我们需要对函数进行重写,使之能快速产生:
1.
数学期望$
\m
u = 0$的正态分布随机数
2.
服从标准正态分布($
\m
u = 0$,$
\s
igma^2 = 1$)的随机数
以达成简化
`gaussian`
函数使用的效果,以下选项正确的是?
## 答案
```
java
import
java.util.Random
;
public
class
TestMain
{
private
static
final
Random
random
=
new
Random
();
private
static
double
gaussian
()
{
return
gaussian
(
0
,
1
);
}
private
static
double
gaussian
(
double
sigma2
)
{
return
gaussian
(
0
,
sigma2
);
}
private
static
double
gaussian
(
double
mu
,
double
sigma2
)
{
return
Math
.
sqrt
(
sigma2
)
*
random
.
nextGaussian
()
+
mu
;
}
}
```
## 选项
### Python味的默认值,然而Java并不支持
```
java
import
java.util.Random
;
public
class
TestMain
{
private
static
final
Random
random
=
new
Random
();
private
static
double
gaussian
(
double
mu
=
0
,
double
sigma2
=
1
)
{
return
Math
.
sqrt
(
sigma2
)
*
random
.
nextGaussian
()
+
mu
;
}
}
```
### 用法正确,但不符合题目要求
```
java
import
java.util.Random
;
public
class
TestMain
{
private
static
final
Random
random
=
new
Random
();
private
static
double
gaussian
()
{
return
gaussian
(
0
,
1
);
}
private
static
double
gaussian
(
double
mu
)
{
return
gaussian
(
mu
,
1
);
}
private
static
double
gaussian
(
double
mu
,
double
sigma2
)
{
return
Math
.
sqrt
(
sigma2
)
*
random
.
nextGaussian
()
+
mu
;
}
}
```
### Python味的默认值,Java并不支持,就一个也不成
```
java
import
java.util.Random
;
public
class
TestMain
{
private
static
final
Random
random
=
new
Random
();
private
static
double
gaussian
()
{
return
gaussian
(
0
,
1
);
}
private
static
double
gaussian
(
double
mu
,
double
sigma2
=
1
)
{
return
Math
.
sqrt
(
sigma2
)
*
random
.
nextGaussian
()
+
mu
;
}
}
```
### 函数重写时的标识符必须可区分
```
java
import
java.util.Random
;
public
class
TestMain
{
private
static
final
Random
random
=
new
Random
();
private
static
double
gaussian
()
{
return
gaussian
(
0
,
1
);
}
private
static
double
gaussian
(
double
sigma2
)
{
return
gaussian
(
0
,
sigma2
);
}
private
static
double
gaussian
(
double
mu
,
double
sigma2
)
{
return
Math
.
sqrt
(
sigma2
)
*
random
.
nextGaussian
()
+
mu
;
}
private
static
double
gaussian
(
double
sigma2
,
double
mu
)
{
return
Math
.
sqrt
(
sigma2
)
*
random
.
nextGaussian
()
+
mu
;
}
}
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录