1062 最简分数 (20 分)(~这题让我学到很多~,多看以下两种思路!!,精简代码量~)

一个分数一般写成两个整数相除的形式:N/M,其中M不为0。最简分数是指分子和分母没有公约数的分数表示形式。现给定两个不相等的正分数N1​/M1​和N2​/M2​,要求你按从小到大的顺序列出它们之间分母为K的最简分数。输入格式:输入在一行中按N/M的格式给出两个正分数,随后是一个正整数分母K,其间以空格分隔。题目保证给出的所有整数都不超过 1000。输出格式:在一行中按N/M的格式列出两个给定分数之间分母为K的所有最简分数,按从小到大的顺序,其间以 1 个空格分...
摘要由CSDN通过智能技术生成

一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0。最简分数是指分子和分母没有公约数的分数表示形式。

现给定两个不相等的正分数 N1​/M1​ 和 N2​/M2​,要求你按从小到大的顺序列出它们之间分母为 K 的最简分数。

输入格式:

输入在一行中按 N/M 的格式给出两个正分数,随后是一个正整数分母 K,其间以空格分隔。题目保证给出的所有整数都不超过 1000。

输出格式:

在一行中按 N/M 的格式列出两个给定分数之间分母为 K 的所有最简分数,按从小到大的顺序,其间以 1 个空格分隔。行首尾不得有多余空格。题目保证至少有 1 个输出。

输入样例:

7/18 13/20 12

输出样例:

5/12 7/12

英语普及

最小公倍数(lcm):lowest common multiple

最大公约数(gcd):  greatest  common divisor

解题思路1:

分数定义为结构体类型,写一个求a,b,c的最小公倍数的函数lcm(),我们都知道用辗转相除法求最大公约数的方法gcd(),求得a与b的最大公约数d后,它们的最小公倍数即为a

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如果你想精简到一个概率很大的预测结果,可以在程序中添加一个阈值来筛选概率高于该阈值的结果。例如,你可以设置一个阈值为0.5,只输出预测概率高于0.5的结果。具体的实现方式可以根据你使用的编程语言和工具进行调整。以下是一个Python的示例代码: ``` import torch from transformers import AutoTokenizer, AutoModelForCausalLM # 加载模型和词器 tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-small") model = AutoModelForCausalLM.from_pretrained("microsoft/DialoGPT-small") # 对话循环 while True: # 获取用户输入 user_input = input("You: ") # 将用户输入转换为模型输入格式 input_ids = tokenizer.encode(user_input + tokenizer.eos_token, return_tensors='pt') # 生成回复 response = model.generate(input_ids=input_ids, max_length=1000, pad_token_id=tokenizer.eos_token_id) # 将回复转换为字符串格式 response_text = tokenizer.decode(response[0], skip_special_tokens=True) # 获取概率最高的token及其概率值 tokens = tokenizer.encode(response_text, return_tensors='pt') probability = torch.nn.functional.softmax(model(tokens).logits, dim=-1)[0, -1, :] top_token = torch.argmax(probability) # 如果概率最高的token的概率值小于0.5,则重新输入 if probability[top_token] < 0.5: print("Sorry, I don't understand. Can you ask something else?") continue # 输出回复 print("Chatbot:", response_text) ``` 在这个示例代码中,我们首先使用词器将用户输入转换为模型输入格式,然后使用模型生成回复,并将回复转换为字符串格式。接着,我们获取回复中每个token的概率值,并选择概率最高的token。最后,我们判断概率最高的token的概率值是否大于0.5,如果小于0.5,则输出提示信息并重新输入,否则输出回复。你可以根据自己的需求和情况,调整阈值的大小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.阿Q.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值