1.gif

全妹超可爱

[全年龄正常向]大佬帮忙写个简单代码,另外有什么免费的ai编程的网站吗,



有大佬帮忙写个简单代码吗,我是小白

就是给我 10 组  我输入的相应数量的随机数字,要求是数字带有2位小数点,并且要求总和在1000-1500之间,不用整数。

比如我输入2, 就给我10组 2个数字,总和在1000-1500之间。

输入3,就给我10组 3个数字, 总和在1000-1500之间。

尝试了下gpt ,只有免费的3.5,一坨屎。。。

此帖悬赏结束
最佳答案: 20 SP币
最佳答案获得者: 51ca452f

none.gif

51ca452f

回 11楼(全妹超可爱) 的帖子

6楼和11和13行的list1后面少了中括号里的东西
发到这个网页了,可以直接复制
https://paste.org.cn/gxsCCOv7t8
然后你先跑一下代码看效果对不对
正常是不会直接转成exe运行的,你去找找安装py运行环境的教程。一般都是直接运行py文件的。
临时用的话也可以用这种直接在网页运行的
https://www.jyshare.com/compile/9/

转exe我也没怎么用过,你自己研究一下吧。
最佳答案奖励: (+20) SP币

none.gif

d30ab25a

写得不好,浮点精度有点恶心,极限情况可能会超出1000-1500范围,大佬们有更优解可以分享一下。
复制粘贴到Java里就可以运行。
public static void main(String[] args) {
        int inputNum = 2;
        Random random = new Random();
        for (int i = 0; i < 10; i++) {
            // 随机偏移量
            int randomOffset = random.nextInt(20);
            // 生成1000到1500之间的随机浮点数 - n倍偏移量
            BigDecimal randomNum = BigDecimal.valueOf(random.nextDouble() * (1500 - 1000) + 1000 - randomOffset * inputNum);
            // 累加N次偏移
            BigDecimal divide = randomNum.divide(new BigDecimal(inputNum), RoundingMode.DOWN).setScale(2, RoundingMode.DOWN);
            for (int j = 1; j <= inputNum; j++) {
                divide = divide.add(new BigDecimal(randomOffset));
                System.out.println("随机浮点数" + j + ":" + divide);
            }
        }
    }
热心助人奖励: (+1) SP币

F-Qsam5WcAA2lKA?format=jpg&name=medium

闲鱼

B3F  2024-02-17 22:38
(因果は巡る糸車 光と影の多面鏡 現世の一切は一時の夢)

回 2楼(全妹超可爱) 的帖子

阿哲~
热心助人奖励: (+1) SP币

none.gif

7877c9f1

B4F  2024-02-17 23:02
(haha)
没描述清楚,10个2位数字相加,最大就是990,怎么可能得到1000以上的数呢?
热心助人奖励: (+1) SP币

none.gif

51ca452f

import random

def random_group(num, sum):
    list1 = [0 for x in range(num)]
    min = 0
    max = sum
    random.uniform
    # 在循环中生成num - 1个随机数
    for i in range(num - 1):
        # 取一个随机数放在a位置。round(x * 100)/100的操作是保留x小数点后2位
        list1 = round(random.uniform(min, max) * 100) / 100
        # // 缩小下一个随机数的范围,比如目标和为2005,生成的第一个随机数为500,则第二个随机数的范围为2005 - 500 = 1505
        max -= list1
        # 直接将剩下的值作为最后一个随机数
    list1[num - 1] = round(max * 100) / 100
    return list1

if __name__ == '__main__':
    inputnum = int(input("输入目标个数: "), 10)
    targetsum = random.uniform(1000, 5000)

    for i in range(10):
        list0 = random_group(inputnum, targetsum)
        print("目标和 : %.2f" %(targetsum))
        print("结果 : %s" %list0)
热心助人奖励: (+1) SP币

none.gif

cfb1b16d

百度直接搜kimi,不用翻墙的gpt
热心助人奖励: (+1) SP币

none.gif

Catrix

B7F  2024-02-18 18:48
([sell=99999]答案[/sell],[img] [/img])
我觉得GPT-3.5答不好主要是因为你的描述有问题,我就没看懂你的需求。Bing是4.0,通义千问的能力接近4.0。关键还是要有好的prompt,回答不满意时也要有好的prompt去纠正AI
热心助人奖励: (+1) SP币

1.gif

全妹超可爱

回 1楼(d30ab25a) 的帖子

辛苦大佬了,我忘了说了,我这边只会弄成python的。。

1.gif

全妹超可爱

回 4楼(7877c9f1) 的帖子

是10组。,
一组2个数字,不是2位数

none.gif

51ca452f

没搞懂你这10组数的和要不要一样,要不一样的话把
targetsum = random.uniform(1000, 5000)这一行放到for循环里就行

none.gif

d30ab25a

回 2楼(全妹超可爱) 的帖子

思路差不多,py随机数也有函数。开箱即用。
import random
from decimal import Decimal, ROUND_DOWN

def main():
    inputNum = 2
    for i in range(10):
        # 随机偏移量
        randomOffset = random.randint(0, 19)
        # 生成1000到1500之间的随机浮点数 - n倍偏移量
        randomNum = Decimal(random.uniform(1000, 1500) - randomOffset * inputNum)
        # 累加N次偏移
        divide = randomNum / inputNum
        divide = divide.quantize(Decimal('0.01'), rounding=ROUND_DOWN)
        for j in range(1, inputNum + 1):
            divide += Decimal(randomOffset)
            print(f"随机浮点数{j}: {divide}")

if __name__ == "__main__":
    main()

none.gif

51ca452f

回 6楼(51ca452f) 的帖子

不知道为啥直接复制的代码发出去少了几个字,以图里的代码为准把
https://img.tg/image/OyOqLD

1.gif

全妹超可爱

回 8楼(d30ab25a) 的帖子

我转成exe的后,打开就关了

1.gif

全妹超可爱

回 9楼(51ca452f) 的帖子

我是直接复制到 txt文档,然后改后缀到py,然后用pyinstaller改成exe的。

大佬这个我弄不懂。。看了跟6楼的没什么差欸。。

1.gif

全妹超可爱

大佬们

1.gif

全妹超可爱

回 14楼(Catrix) 的帖子

哪里没懂?
的确prompt是蛮重要的,我在这边用中文都有人不理解,虽然我感觉说得蛮清楚了。。
不过gpt3.5 给我的回答我要求的总和区间都达不到

none.gif

d30ab25a

我拿命令行是可以跑的,楼上的老哥给的答案没毛病,为啥要改成exe执行,不应该是搞个pycharm之类的编译器来跑吗

1.gif

全妹超可爱

回 16楼(51ca452f) 的帖子

谢谢大佬,我是要1000-1500,
我改了下在那个网站就可以了,

不过10组的总和 都是一样的,
可以10组的结果是随机的吗,只要在1000-1500之间

1.gif

全妹超可爱

回 17楼(d30ab25a) 的帖子

exe方便点?
点一下就可以用?

none.gif

51ca452f

回 18楼(全妹超可爱) 的帖子

那你把23行的取随机和的代码放到25行的for循环下就行,注意缩进和26行对齐就行

1355725.jpg

撸树

B21F  2024-02-21 01:48
(其实这话我本没说过,只是说是我说的人多了,也就变成了我说的)
偷懒解法,python

复制代码
  1. n_min=1000
  2. n_max=1500
  3. n_g=10
  4. n=int(input("\nplease input a number: "), 10)
  5. print("\n")
  6. n=n*n_g
  7. n_sum=0
  8. Random=__import__('random')
  9. m=n_max/n
  10. t=m
  11. for i in range(n):
  12. e=Random.uniform(0,t)
  13. t=Random.uniform(e,t)
  14. print("%.2f    " %(t))
  15. n_sum+=t
  16. t=m+(m-t)
  17. print("\nsum = %s\n" %(n_sum))