楼主: 江夏雁
1825 4

[问答] 数列中抽样,要求数值越大,抽中的概率越大 [推广有奖]

  • 20关注
  • 2粉丝

朋友

教授

57%

还不是VIP/贵宾

-

威望
0
论坛币
565 个
通用积分
5.4453
学术水平
8 点
热心指数
9 点
信用等级
-4 点
经验
40942 点
帖子
843
精华
0
在线时间
613 小时
注册时间
2010-6-24
最后登录
2025-2-26

楼主
江夏雁 在职认证  发表于 2020-6-22 00:04:07 |AI写论文
5论坛币
从一个数列中抽一个数,要求数值越大,抽中的概率越大,请问有相关代码吗?多谢!

比如 一个数列  
5 4 3 2 1
抽中5 的概率是最大的,抽中1是最小的,这样的


最佳答案

megapanda 查看完整内容

可以直接sample里面加概率,比如(设你的数值向量是x) 这个例子,数值大小实际上就是权重
关键词:最大的
若无人伴你 愿你成你自己的太阳

沙发
megapanda 发表于 2020-6-22 00:04:08
可以直接sample里面加概率,比如(设你的数值向量是x)
  1. sample(x, size = 1, prob = x / sum(x))
复制代码

这个例子,数值大小实际上就是权重
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

藤椅
江夏雁 在职认证  发表于 2020-6-22 14:18:10
megapanda 发表于 2020-6-22 00:04
可以直接sample里面加概率,比如(设你的数值向量是x)

这个例子,数值大小实际上就是权重
你好!多谢你的回答,请问有了解如果是矩阵中选一个元素,然后也是值越大,选中的概率越大,怎么写呢?多谢!

板凳
江夏雁 在职认证  发表于 2020-6-22 14:39:12
megapanda 发表于 2020-6-22 00:04
可以直接sample里面加概率,比如(设你的数值向量是x)

这个例子,数值大小实际上就是权重
sample(a, size = 1, prob = a / sum(a))
这个式子也可以对矩阵,
但是想要返回所选元素的横纵坐标,不知道应该如何写,
多谢!

报纸
megapanda 发表于 2020-6-22 23:40:55
江夏雁 发表于 2020-6-22 14:39
sample(a, size = 1, prob = a / sum(a))
这个式子也可以对矩阵,
但是想要返回所选元素的横纵坐标,不 ...
比如你sample得到的数是20,那你可以
  1. which(x == 20, arr.ind = TRUE)
复制代码
获取矩阵中值为20的元素的行和列

如果你的矩阵有重复元素(比如有3个20),那么此代码会返回所有20的行和列

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

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