长度为 k 的非重叠子串的随机采样

2024-04-17

给定一个长度的字符串n,我将如何(伪)随机采样m大小子串k这样采样的子串就不会重叠?我的大部分脚本编写经验都是使用 Perl,但任何通用语言的易于运行的解决方案就足够了。


如果输入中不能出现某个字符,例如X, just:

my $size = 20;
my $count = 20;
my $mark = 'X';
my $input = 'CCACGCATTTTTGTTCATTGTTCTGGCTTCTTACAAGGTTCAGTAGACTTTGTAACACAGTTGTGTCTCTCACAGATTGGCAGATGTTTGGTAAAGGATTGACTTTTCAGCCAACTCATGGGAAAGTGAAATAATGTAAAAAACAGGAAGAATACAGTTTTAGGCCTTTCAAGTGAGGCATGGCTTTCAGCTCTTGGCAAGAACAGGCAAGGAGATGCAAGTTTTAGGACTCTAAGAGGCTAGGCTTTTCAAAGTGCTTCTCTCCCCTTCACCCTCCTTCAGTTACAGCACCAAGCACCACCGAGGTGTTACCTGCAGCCTCACTCTCTACCTGGTTGTGGGATCCTGCCACTTCCTTAACCCACACTGAGTTCCTTGTGGTTCACAGGGTCACACAGAGGGCTGTAGAGATACAAAAGATATATGTGATTTTATATCACCTATCATATGAAGATATATTTATAAAATAGGAAACATATTAACCACTTATCATTTTATATATTTATGGTTTTATGTGTCAAAAATATATTGTTTCATGTATGTATTAAAGGATAAGTATGTATAAGAGGTTTTATAGATGTGTAAAATTATATATTTATACGTATCTTTACAAATTTAAGAATAAAGGAAGGAAAATTCTCAAAGAGGAATTCAGATATCAAGCAGTGCCCTTTGACCAAGAGCCTTGGTTACAACATACCTACAAAAGTGAACTATCATTGAAAGACCTATGGACACTGGATTTCTCTTTCCTTATTTAGAAGGGCAGTCTGTGTCTTGGAAAAGCATACAGTTTGTTGTATCTTGCTGGACAACAGGAGTCA';

if (2*$size*$count-$size-$count >= length($input)) {
    die "selection may not complete; choose a shorter length or fewer substrings, or provide a longer input string\n";
}

my @substrings;
while (@substrings < $count) {
    my $pos = int rand(length($input)-$size+1);
    push @substrings, substr($input, $pos, $size, $mark x $size)
        if substr($input, $pos, $size) !~ /\Q$mark/;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

长度为 k 的非重叠子串的随机采样 的相关文章

随机推荐

  • PHP:删除数组的第一项和最后一项

    假设我有这个数组 array array 10 20 30 30 40 50 问题 从上面的数组中删除第一项的最快 最简单的方法是什么 从上面的数组中删除最后一项的最快 最简单的方法是什么 因此生成的数组仅包含这些值 20 30 30 40
  • 构建后如何在 Windows 上安装 Qt?

    我找不到任何有关如何安装基于 Windows 的 Qt 的信息 在维基文章中如何在 Mac 和 Linux 上设置影子构建 http developer qt nokia com wiki Qt shadow builds有描述 prefi
  • SQL Server 导入和导出向导导出到 PostgreSQL 时出错

    我正在尝试使用 SQL Server 的导入和导出向导 SQL Server 2008 R2 导出 SQL Server 数据库 数据库模式在目标 PostgreSQL 数据库中创建得很好 大部分数据也是如此 仅当我尝试导出具有以下内容的列
  • org.apache.hadoop.security.AccessControlException:尝试在 EC2 上使用 Hadoop Java API 通过 s3n URI 访问 S3 存储桶时权限被拒绝

    Scenario 我创建一个名为 my role 的 AWS IAM 角色 将 EC2 指定为可信实体 即使用信任关系策略文档 Version 2012 10 17 Statement Sid Effect Allow Principal
  • 获取 ORA-02391: SESSIONS_PER_USER 限制

    是否有一个查询可以用来获取我可以同时使用的会话数量 我正在线程化一些数据库连接并收到错误 ORA 02391 超出同时 SESSIONS PER USER 限制 我怎样才能得到这个限制的值 从这个查询开始找出您正在使用多少个会话 selec
  • 具有动态别名的动态虚拟主机

    我在用DNSMasq对于此设置 我在使用 Alias 时遇到问题 因为它对于动态虚拟主机根本不起作用 并且不存在这样的事情VirtualAlias在 Apache 文档中 我正在尝试像以前一样设置我的新环境 devtld 但我遇到了问题 因
  • 使用 Unity 3D 移动鼠标时相机跟随玩家

    我有一个简单的脚本 当我转动相机时 可以移动和环顾四周 但相机不随角色转动 我如何让它们一起转动 using System Collections Generic using UnityEngine public class PlayerF
  • React.js - 在表单提交时和之后显示一条消息

    提交表单时 我想显示 请稍候 并在成功提交后显示从服务器返回的数据 使用 jQuery 这很容易做到 但应该有一种 React 方式 因为 React 不喜欢这种直接的 DOM 操作 我认为 1 我对吗 2 如何在表单提交时 而不是之后 显
  • 如何改进此代码的功能[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 a1 input Enter an 8 bit binary number to convert a1 list a1 ok False i
  • JavaFX FXML 控制器 - 构造函数与初始化方法

    My Application类看起来像这样 public class Test extends Application private static Logger logger LogManager getRootLogger Overri
  • 是否可以使用多线程而不需要一遍又一遍地创建线程?

    首先 再次感谢所有已经回答我问题的人 我不是一个经验丰富的程序员 这是我第一次体验多线程 我有一个与我的问题非常相似的例子 我希望这可以缓解我们的情况 public class ThreadMeasuring private static
  • 使用 python 进行简单的 ascii url 编码

    看那个 import urllib print urllib urlencode dict bla 输出是 bla C3 BC 我想要的很简单 我想要 ascii 格式的输出而不是 utf 8 格式的输出 所以我需要输出 bla C3 如果
  • 此链接内的链接和跨度的文本装饰

    我有类似的链接 a href Link text span Link sub text span a 悬停时 我需要跨度内的文本不带下划线装饰 但主链接文本是 是否可以 我试过了 a hover span text decoration n
  • 如何更改列表中的ListStyle

    在 SwiftUI 中List似乎有一个名为ListStyle 如何更改列表的样式 struct ListView View var body some View NavigationView List Item create identi
  • jQuery document.ready 与 pageLoad

    我从另一位开发人员那里挑选了一个现有项目 我在代码中注意到他们正在三个不同的事件处理程序中执行 js 代码 function pageLoad execute code document ready function execute cod
  • ASP.NET MVC 中 ViewModel 的验证

    大多数关于如何在 ASP NET MVC 中实现验证的技巧似乎都以模型为中心 在模型和控制器之间构建服务层 或者使用验证属性装饰模型的属性 在我的应用程序中 我使用 ViewModel 进行控制器和视图之间的所有通信 我的登录页面有一个名为
  • 用glib进行垃圾收集?

    我想将垃圾收集语言 具体来说 它使用古老的 Boehm libgc 与 glib 系列 API 接口 glib 和 gobject 在内部使用引用计数来管理对象生命周期 包装这些的正常方法是使用垃圾收集的对等对象 该对象保存对 glib 对
  • 有“进度按钮”吗?

    我想要一个具有双重功能的按钮作为进度条 例如 随着任务的进展 按钮会填充绿色背景 我知道我可以创建自己的 但如果有现成的东西 我很乐意使用它 有谁知道适合该要求的免费或商业组件吗 我希望它能在 Delphi 2007 中工作 但如果它仅在
  • glBitmap 问题

    我正在使用一些遗留代码来工作 它使用 glBitmap 调用来绘制位图图标 我的问题是 一旦你一次绘制大约 1000 个图标 它就会变得相当慢 它会减慢到大约 1 到 2 秒的刷新率 我想看看是否可以让它更快 首先我应该描述当前代码是如何工
  • 长度为 k 的非重叠子串的随机采样

    给定一个长度的字符串n 我将如何 伪 随机采样m大小子串k这样采样的子串就不会重叠 我的大部分脚本编写经验都是使用 Perl 但任何通用语言的易于运行的解决方案就足够了 如果输入中不能出现某个字符 例如X just my size 20 m