数学猜想

《算法笔记》之简单模拟

。_饼干妹妹 提交于 2020-02-09 03:22:49
入门模拟 这一章是入门章节,没有什么复杂算法,就是一些简单的模拟题。 简单模拟 【PAT B1001】害死人不偿命的(3n+1)猜想(15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展…… 我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n,简单地数一下,需要多少步(砍几下)才能得到 n=1? 输入格式: 每个测试输入包含 1 个测试用例,即给出正整数 n 的值。 输出格式: 输出从 n 计算到 1 需要的步数。 输入样例: 3 输出样例: 5 解析: 也没有什么,简单模拟即可。里面有一个小细节,就是不管是奇数还是偶数,都会除以2,所以,除以2的操作可以合并。 # include <iostream> using namespace std ; int main ( ) { int n , i = 0 ; cin >> n ; while ( n != 1 ) { if ( n

1001 害死人不偿命的(3n+1)猜想 (15point(s)) (PAT乙级Python3)

血红的双手。 提交于 2020-02-06 07:50:54
1001 害死人不偿命的(3n+1)猜想 (15point(s)) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展…… 我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n,简单地数一下,需要多少步(砍几下)才能得到 n=1? 输入格式: 每个测试输入包含 1 个测试用例,即给出正整数 n 的值。 输出格式: 输出从 n 计算到 1 需要的步数。 输入样例: 3 输出样例: 5 分析: Python3代码: n = int(input()) times = 0 while n!=1: if(n%2 == 0): n = n/2 else: n = (3*n+1)/2 times = times + 1 print(times) # guangjinzheng 2020.2.5 来源: CSDN 作者: guangjinzheng 链接: https://blog.csdn.net

PAT-BASIC1001-1005

偶尔善良 提交于 2020-02-03 05:46:39
1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n ,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3 n +1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n =1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3 n +1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展…… 我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n ,简单地数一下,需要多少步(砍几下)才能得到 n =1? 输入格式: 每个测试输入包含 1 个测试用例,即给出正整数 n 的值。 输出格式: 输出从 n 计算到 1 需要的步数。 输入样例: 3 输出样例: 5 #include<iostream> using namespace std; int main(){ int n,step=0; cin>>n; while(n!=1){ if(n%2==0) n=n/2; else n=(n*3+1)/2; step++; } cout<<step; } 1002 写出这个数 (20分) 读入一个正整数 n ,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式:

1001 害死人不偿命的(3n+1)猜想 (15分)

雨燕双飞 提交于 2020-02-01 16:35:03
文章目录 问题 解决方法 后记 问题 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展…… 我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n,简单地数一下,需要多少步(砍几下)才能得到 n=1? 输入格式: 每个测试输入包含 1 个测试用例,即给出正整数 n 的值。 输出格式: 输出从 n 计算到 1 需要的步数。 输入样例: 3 输出样例: 5 解决方法 这是一个入门级的简单模拟的问题.按照题意写出来就行. # include <iostream> using namespace std ; int main ( ) { int n , step = 0 ; cin >> n ; while ( n != 1 ) { if ( n % 2 ) n = 3 * n + 1 ; else { n = n / 2 ; step ++ ; } } cout << step ; return

PTA 乙级 JAVA实现 1001 害死人不偿命的(3n+1)猜想

折月煮酒 提交于 2020-01-21 22:57:03
卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展…… 我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n,简单地数一下,需要多少步(砍几下)才能得到 n=1? 输入格式: 每个测试输入包含 1 个测试用例,即给出正整数 n 的值。 输出格式: 输出从 n 计算到 1 需要的步数。 输入样例: 3 输出样例: 5 作者: CHEN, Yue 单位: 浙江大学 时间限制: 400 ms 内存限制: 64 MB import java . util . Scanner ; //1001 害死人不偿命的(3n+1)猜想 public class PTA1 { public PTA1 ( ) { } public static void main ( String [ ] args ) { Scanner myscan = new Scanner ( System . in ) ; int n =

PAT (Basic Level) Practice (中文)入门篇(1)C

我们两清 提交于 2020-01-19 00:34:32
1001 害死人不偿命的(3n+1)猜想 (15分)C语言 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展…… 我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n,简单地数一下,需要多少步(砍几下)才能得到 n=1? 输入格式: 每个测试输入包含 1 个测试用例,即给出正整数 n 的值。 输出格式: 输出从 n 计算到 1 需要的步数。 输入样例: 3 输出样例: 5 原题链接 思路: 读入题目给出的n,之后用while循环语句反复判段n是否为1 如果n为1,则退出循环; ruguon不为1,则判断n是否为偶数,如果是偶数,则令n除于2;则令n为(3*n+)/2,之后令计数器count加1; 退出循环时,count值即为答案。 # include <stdio.h> int main ( ) { int n , count = 0 ; scanf ( "%d" , & n ) ; /

卡拉兹(Callatz)猜想

蓝咒 提交于 2020-01-13 08:44:04
PAT(Basic Level) Practise NO.1001 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过1000的正整数n,简单地数一下,需要多少步(砍几下)才能得到n=1? 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。 输出格式:输出从n计算到1需要的步数。 输入样例: 3 输出样例: 5 #include <iostream> using namespace std; int main() { int n,Count=0;//初始化Count为0,用于计数 cin>>n;//输入n while(n!=1)//只要n不等于1那就一直循环 { if(n%2==0)//n为偶数 n=n/2; else//n为奇数 n=(3*n+1)/2; Count++;//无论n为奇为偶都要加一 } cout<<Count;//n等于一,输出Count的值 }

PTA|1001 害死人不偿命的(3n+1)猜想

孤者浪人 提交于 2020-01-12 11:32:25
卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展…… 我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n,简单地数一下,需要多少步(砍几下)才能得到 n=1? 输入格式: 每个测试输入包含 1 个测试用例,即给出正整数 n 的值。 输出格式: 输出从 n 计算到 1 需要的步数。 输入样例: 3 输出样例: 5 代码: # include <iostream> using namespace std ; int main ( ) { int n ; cin >> n ; int count = 0 ; while ( n != 1 ) { if ( n % 2 == 0 ) n / = 2 ; else n = ( 3 * n + 1 ) / 2 ; count ++ ; } cout << count << endl ; return 0 ; } 来源: CSDN 作者: jilli

霍奇猜想

六眼飞鱼酱① 提交于 2020-01-10 22:00:26
陈同学 建议我 研究 霍奇猜想, 就看了一下 霍奇猜想 。 这玩意 …… 嗯, …… 充满了 数学术语, 要把 这些 数学术语 消化掉, 需要一段时间 。 不过 这 也是一个 很好 的 学习材料, 把 霍奇猜想 了解了, 也就 了解 现代数学 的 全貌 和 脉络 了 。 霍奇猜想 是 数学 的 集大成者, 也是 妄想 的 集大成者 , 它 表示了 数学 在 探索 数 、形 等 数理 的 奥秘 。 但 这些 探究 和 发现 基本上 是 妄想发明, 对 实际应用 意义 不大 。 这些 可以 作为 一门 学问, 可以 慢慢 去 玩, 就像 老年人 下象棋 。 所以, 对于 年轻人 来说, 这些东西 多少 显得 陈腐 。 年轻人 要做 的 是 用 简单 的 数学 去 描述 无尽 的 宇宙 。 我之前说过, 我正在筹划 发明 新的 数学工具 和 概念, 其中 包括 新的 球面几何 和 空间几何, 取代 黎曼几何 和 流形 。 本文已发到了 民科吧 《霍奇猜想》 http://tieba.baidu.com/p/6437888584 。 来源: https://www.cnblogs.com/KSongKing/p/12178261.html

1001 害死人不偿命的(3n+1)猜想 (15分)java

天涯浪子 提交于 2019-12-29 20:28:07
卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展…… 我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n,简单地数一下,需要多少步(砍几下)才能得到 n=1? 输入格式: 每个测试输入包含 1 个测试用例,即给出正整数 n 的值。 输出格式: 输出从 n 计算到 1 需要的步数。 输入样例: 3 输出样例: 5 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s=new Scanner(System.in); int n=s.nextInt(); int num=0; while(n!=1) { num++; if(n%2==0) { n=n/2; }else { n=(3*n+1)/2; } } System.out.println(num);