本题来自 1、Collatz 序列 编写一个名为 collatz()的函数,它有一个名为 number 的参数。...如果参数是偶数,那么 collatz()就打印出 number // 2,并返回该值。如果 number 是奇数,collatz()就打印并返回 3 * number + 1。...你的程序在研究所谓的“Collatz序列”,它有时候被称为“最简单的、不可能的数学问题”)。...(x) else: x = x // 2 #print (x) collatz(x) print (collatz((number))) 2、输入验证...ValueError as verror: print ("输入了非整数") print (collatz((number)))
可运行的例子 这里TensorFlow官方展示了一个用循环和分支检查Collatz猜想的例子,用AutoGraph的 .to_graph()函数将其转换为计算图: 1def collatz(a):...else: 7 a = 3 * a + 1 8 counter = counter + 1 9 return counter 10 11graph_mode_collatz...= autograph.to_graph(collatz) 12# The code is human-readable, too 13print(autograph.to_code(collatz)...) 14 15collatz_tensor = graph_mode_collatz(tf.constant(n)) AutoGraph可以支持任意嵌套控制流,例如: 1def f(n): 2 if
题目如下 编写一个名为collatz()的函数,它有一个名为number的参数。如果参数是偶数,那么collatz()就打印出number // 2,并返回该值。...如果number是奇数,collatz()就打印并返回3 * number + 1。...然后编写一个程序,让用户输入一个整数,并不断对这个数调用collatz(),直到函数返回值1 练习过程 先完成子函数的内容 def (number): if number%2 == 0:...= 1: num = collatz(num) 结果如下 图片 奇怪的是,每次结果都打印了两次 从头开始梳理代码,怀疑是在语句 while collatz(num) !...= 1: num = collatz(num) 图片 结果正常
break Collatz序列 #Collatz序列 def collatz(number): if (number % 2 == 0): return number / 2...int(input()) except ValueError: print('Please input a number') continue if collatz...= 1: print(int(collatz(number1))) else: print(int(collatz(number1))) break
Problem 14 Longest Collatz sequence The following iterative sequence is defined for the set of positive...Although it has not been proved yet (Collatz Problem), it is thought that all starting numbers finish...解题报告 考拉兹猜想 考拉兹猜想(Collatz conjecture),又称为奇偶归一猜想、3n+1 猜想、冰雹猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想,是指对于每一个正整数,如果它是奇数,则对它乘.../ 2 n += 2 d[i] = n print(max(d,key=d.get)) 答案:837799 参考资料: 递归算法 记忆化搜索算法优化 longest Collatz
编写一个名为collatz()的函数,它有一个名为number的参数。 如果参数是偶数,那么collatz()就打印出number//2,并返回 该值。...如果number是奇数,collatz()就打印并返回3*number+1。...然后编写一个程序,让用户输入一个整数,并不断对这个数 调用collatz(),直到函数返回值1(令人惊奇的是,这个序列 对于任何整数都有效,利用这个序列,你迟早会得到1!既使数学 家也不能确定为什么。...你的程序在研究所谓的“Collatz序列”, 它有时候被称为“最简单的、不可能的数学问题”)。...// 2 else: return 3 * number + 1 num = int(input('Num:')) while True: num = collatz(num) print(num)
:https://github.com/tensorflow/models/blob/master/samples/core/guide/autograph.ipynb 在这里,我们使用循环和分支证实Collatz...def collatz(a): counter = 0 while a !...else: a = 3 * a + 1 counter = counter + 1 return counter graph_mode_collatz...= autograph.to_graph(collatz) # The code is human-readable, too print(autograph.to_code(collatz)) collatz_tensor...= graph_mode_collatz(tf.constant(n)) AutoGraph可以支持任意的嵌套控制流,例如: def f(n): if n >= 0: while n <
第14题 问题描述: 从100万之内挑一个数作为起始数,生成Collatz序列,哪个生成的链最长?...Collatz序列的意思是,当一个数n是偶数时,下一数为n/2;当n为奇数时,下一个数为3*n+1。 这种序列有一个猜想,最后都会收敛于4,2,1。...fn collatz_len(x: u64) -> u64 { if x == 1 { return 1; } let y; if x % 2 == 0 { y...fn collatz_len(x: u64) -> u64 { if x == 1 { return 1; } let y = if x % 2 == 0 { x / 2 } else {...x * 3 + 1 }; collatz_len(y) + 1} 主程序用一个循环暴力搜索就行了: fn main() { let mut max = 0; for num in
https://www.dcode.fr/collatz-conjecture 虽然克拉茨猜想的表述和理解都非常简单,但严格证明却非常困难。...他意识到,Collatz猜想在某种程度上类似于一种方程式的形式,即偏微分方程,他正是这个领域取得了职业生涯中一些最重要的成果。...在Collatz过程的每一个步骤中,处理的数字都在变化。一个明显的变化是,样本中几乎所有的数字都变小了。 另一个可能不那么明显的变化是,这些数字可能会开始聚集在一起。...但是经过五次Collatz迭代之后,这些数字很可能集中在数轴上的几个小区间内。换句话说,你可能一开始有一个很好的样本,但是五步之后,它就完全扭曲了。...陶哲轩的关键见解是找出如何在整个Collatz过程中选择一个很大程度上保持原有权重的数字样本。 例如,陶哲轩的初始样本加权后不包含3的倍数,因为Collatz过程很快就排除了3的倍数。
在这里,我们使用循环和分支检测Collatz猜想。 注意,我们使用AutoGraph的.to_graph()函数将其转换为图形的原因,是为了多样性而不是为了装饰。...def collatz(a): counter = 0 while a !...else: a = 3 * a + 1 counter = counter + 1 return counter graph_mode_collatz...= autograph.to_graph(collatz) # The code is human-readable, too print(autograph.to_code(collatz)) collatz_tensor...= graph_mode_collatz(tf.constant(n)) AutoGraph可以支持任意嵌套控制流,例如: def f(n): if n >= 0: while n < 5
第14题 问题描述: 从100万之内挑一个数作为起始数,生成Collatz序列,哪个生成的链最长?...Collatz序列的意思是,当一个数n是偶数时,下一数为n/2;当n为奇数时,下一个数为3*n+1。 这种序列有一个猜想,最后都会收敛于4,2,1。...fn collatz_len(x: u64) -> u64 { if x == 1 { return 1; } let y; if x % 2 == 0 { y...fn collatz_len(x: u64) -> u64 { if x == 1 { return 1; } let y = if x % 2 == 0 { x / 2 } else...{ x * 3 + 1 }; collatz_len(y) + 1 } 主程序用一个循环暴力搜索就行了: fn main() { let mut max = 0; for num
def collatz(a): counter = 0 while a !...else: a = 3 * a + 1 counter = counter + 1 return counter graph_mode_collatz...= autograph.to_graph(collatz) # The code is human-readable, too print(autograph.to_code(collatz)) collatz_tensor...= graph_mode_collatz(tf.constant(n)) AutoGraph 可以支持任意的嵌套控制流,例如: def f(n): if n >= 0: while n <
Collatz序列 #Collatz序列 def collatz(number): if (number % 2 == 0): return number / 2 else...int(input()) except ValueError: print('Please input a number') continue if collatz...= 1: print(int(collatz(number1))) else: print(int(collatz(number1))) break
Collatz在1937年提出的。...克拉兹问题(Collatz problem)也被叫做hailstone问题、3n+1问题、Hasse算法问题、Kakutani算法问题、Thwaites猜想或者Ulam问题。
关于柯拉茨序列的更多信息可以在en.wikipedia.org/wiki/Collatz_conjecture找到。...运行示例 当您运行collatz.py时,输出将如下所示: Collatz Sequence, or, the 3n + 1 Problem By Al Sweigart email@protected..."""Collatz Sequence, by Al Sweigart email@protected Generates numbers for the Collatz sequence, given.../big-book-small-python-programming Tags: tiny, beginner, math""" import sys, time print('''Collatz...Sequence, or, the 3n + 1 Problem By Al Sweigart email@protected The Collatz sequence is a sequence of
下面使用javascript来定义collatz函数,计算需要多少步才能置1: collatz = steps => { // base case if(step == 1) return 0;...// recursive case: even numbers else if ((steps % 2) == 0) return 1+collatz(steps/2) // recursive...case: odd numbers else return 1+collatz(3*steps+1) } 复制代码 归并排序 将数组拆分为小的数组进行排序,然后将这些排序好的数组重新组合在一起。
来看看这个支持 64 位整数的 Collatz Conjecture 实现: func collatz(n uint64) uint64 { if n % 2 == 0 { return...我们用支持任意大整数类型的 Collatz Conjecture 把上面的程序再实现一遍: var big0 = big.NewInt(0)var big1 = big.NewInt(1)var big2
这是考拉兹猜想(Collatz conjecture)的一个例子,用到了TensorFlow中算术运算: ?
err) } fmt.Println(out) } // collatzSteps computes the number of steps to reach 1 under the Collatz...(See https://en.wikipedia.org/wiki/Collatz_conjecture.) func collatzSteps(n int) (steps int) { if
领取专属 10元无门槛券
手把手带您无忧上云