java实现拉兹猜想_每周一道算法题008:考拉兹猜想

问题:

考拉兹猜想

对自然数n循环执行如下操作。

•n是偶数时,用n除以2

•n是奇数时,用n乘以3后加1

如此循环操作的话,无论初始值是什么数字,最终都会得到1(会进入1 → 4 → 2 → 1这个循环)。

现在设定初始值为偶数时,对其进行乘以3后加1,后续操作不变。如

4 → 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4

10000以内的偶数中,这样能在到达1之前回到初始值的数有多少个?

思路:

创建一个死循环,对n不断的计算,直到n==1为止

解答:

php

// 检查偶数是否合要求

function checkNum($n){

$val = $n * 3 + 1;

while ($val != 1){

$val = $val % 2 == 0? $val / 2 : $val * 3 + 1;

if ($val == $n){

return true;

}

}

return false;

}

$num = 0;

for ($i = 2; $i < 10000; $i+=2) {

if (checkNum($i)){

$num++;

}

}

echo $num;

输出:

34

golang

package main

import "fmt"

func main() {

m := 0

for i := 2; i < 10000; i += 2 {

if checkNum(i) {

m++

}

}

fmt.Println(m)

}

func checkNum(n int) bool {

val := n*3 + 1

for val != 1 {

if val%2 == 0 {

val = val / 2

} else {

val = val*3 + 1

}

if val == n {

return true

}

}

return false

}

输出:

34

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《线性系统与信号》是一本由美国加州大学圣地亚哥分校(UCSD)的法拉兹教授所撰写的教材,是学习信号与系统的重要参考书之一。该教材涵盖了线性系统和信号处理的基本概念和理论,并详细介绍了在实际应用中的数学模型与分析方法。 该教材的内容分为三个部分:信号和系统、线性时间不变(LTI)系统和信号处理。首先,对信号和系统进行了详细阐述,包括连续时间信号和离散时间信号的表示、时域分析和频域分析方法。同时,还介绍了连续时间系统和离散时间系统的数学模型和性质。 接下来,对线性时间不变系统进行了深入解析。通过引入冲激响应和传递函数的概念,讨论了系统的输入-输出关系。并结合傅里叶变换和拉普拉斯变换的原理,推导了系统的频域响应和稳定性条件。此外,还介绍了滤波器、采样定理、模拟滤波器和数字滤波器等相关内容。 最后,该教材对信号处理进行了介绍。包括离散时间信号的抽样和重构、采样定理的应用、离散时间信号的线性卷积和基于快速傅立叶变换(FFT)的频域分析方法等。 该教材的特点是内容丰富、结构清晰,并重视理论与实践的结合。通过数学分析和实际应用的结合,深入浅出地讲解了信号与系统的基本理论与方法,对于读者深入理解信号与系统的本质和应用具有重要意义。 总而言之,《线性系统与信号》是一本对信号与系统课程非常有帮助的教材,适合作为信号与系统相关专业的学生和从事相关研究的人员的参考书,也可作为工程技术人员的实践指南。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值