2249 13

[问答] 从一个集合中提取出满足条件的元素 [推广有奖]

  • 8关注
  • 2粉丝

讲师

33%

还不是VIP/贵宾

-

威望
0
论坛币
310 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
15111 点
帖子
218
精华
0
在线时间
379 小时
注册时间
2012-10-31
最后登录
2020-8-31

楼主
慧(会)幸福 发表于 2020-8-27 11:20:51 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位好,给定x_1, x_2, x_3, 集合A={(y_1, y_2, y_3): y_1+y_2<=x_1, y_1+y_3<=x_2, y_2+y_3<=x_3, y_i均为自然数}。

请问R 里面有没有一个函数或者命令直接把A中的元素拿出来?

多谢啦。 请不要用for 循环。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:各位好

回帖推荐

llb_321 发表于3楼  查看完整内容

沙发
慧(会)幸福 发表于 2020-8-27 11:24:39
for 循环 我是知道的

藤椅
llb_321 在职认证  发表于 2020-8-27 14:38:49
  1. library(matlib)
  2. A <- matrix(c(1, 1, 0,1, 0, 1,0, 1, 1), 3, 3, byrow=TRUE)  #约束条件其实是三元方程组 系数转化为矩阵
  3. b <- c(7, 10, 15)  #假设给定的三个x是7,10,15

  4. E <- echelon(A,b) #求阶梯矩阵,结果的第四列是y的最大解

  5. #列出各y小于最大解的自然数
  6. y1<-c(1:E[1,4])
  7. y2<-c(1:E[2,4])
  8. y3<-c(1:E[3,4])

  9. #这段代码错误 不能求出全部解 且没有实现列示集合所有y组合元素 歉
复制代码

板凳
drunkfish69 发表于 2020-8-27 14:55:53
就是3元一次方程嘛。
  1. x <- c(7, 8, 9)
  2. y1 <- c(1:floor((x[1]+x[2]-x[3])/2))
  3. y2 <- c(1:floor((x[1]+x[3]-x[2])/2))
  4. y3 <- c(1:floor((x[2]+x[3]-x[1])/2))
  5. A <- c(y1, y2, y3) %>%
  6.   unique()
复制代码

报纸
llb_321 在职认证  发表于 2020-8-27 15:02:47
drunkfish69 发表于 2020-8-27 14:55
就是3元一次方程嘛。
确实是三元方程组

地板
慧(会)幸福 发表于 2020-8-27 20:41:53
drunkfish69 发表于 2020-8-27 14:55
就是3元一次方程嘛。
运行之后有错误啊,能再修改一下吗

7
drunkfish69 发表于 2020-8-28 06:48:32
  1. library(tidyverse)
  2. x <- c(7, 8, 9)
  3. y1 <- c(1:floor((x[1]+x[2]-x[3])/2))
  4. y2 <- c(1:floor((x[1]+x[3]-x[2])/2))
  5. y3 <- c(1:floor((x[2]+x[3]-x[1])/2))
  6. A <- c(y1, y2, y3) %>%
  7.   unique()
复制代码

8
drunkfish69 发表于 2020-8-28 06:57:08
运行之后有错误啊,能再修改一下吗
  1. x <- c(10, 8, 9)
  2. x <- sort(x)
  3. A <- c(1:floor((x[3]+x[2]-x[1])/2))
复制代码

这样就行,也不用麻烦y_1~3了

9
tiesuoqiao 发表于 2020-8-28 09:45:47
llb_321 发表于 2020-8-27 14:38
这算法肯定是有问题的

比如你算出的y1=1
其实y1=2也可以

10
tiesuoqiao 发表于 2020-8-28 09:48:27
上边的所有代码都不行
楼主要求的是所有组合
比如b <- c(7, 10, 15)  #假设给定的三个x是7,10,15
那么y = (2,1,1) (6,1,1) 等等都可以
先不说别的,上边所有的代码都不产生“组合”

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 12:47