Questions tagged «multi-threading»

30
等待一分钟–不到十秒
任务 使用任何类型的并行化,请等待多个时间段,以使总睡眠时间至少为一分钟(但少于一分钟半)。 程序/功能必须在10秒内终止,并以任何方式(以任何方式)返回两个值:总经过时间和总执行睡眠时间。两个时间值都必须具有至少0.1秒的精度。 这类似于工时的概念:如果有10名工人分班工作,那么需要60个小时的工作只能在6个小时内完成。在这里,我们可以有60秒的睡眠时间,例如在10个并行线程中,因此只需要6秒就可以完成整个工作。 例 MyProgram程序创建14个线程,每个线程休眠5秒: MyProgram → [5.016,70.105] 执行时间大于5秒,由于开销,总睡眠时间大于70秒。

22
引爆一根弦
给定任何字符串,以三角形的形式打印它,其中文本沿每个对角线上下移动。例如,输入的"Hello World"应输出: d l r d o l W r d o l o W r d l o l l o W r d e l o l H l o W r d e l o l l o W r d l o l o W r …

19
敌对因子数
一些正整数的除数确实很讨厌彼此,并且他们不喜欢共享一个或多个公共数字。 这些整数称为敌对数数(HDN) 例子 Number 9566有4除数:(1, 2, 4783 and 9566 如您所见,其中没有两个共享相同的数字)。 因此,9566是一个ħ ostile d ivisor Ñ棕土 号码9567是不是HDN,因为它的除数(1, 3, 9, 1063, 3189, 9567)具有一些共同的数字。 这是前几个HDN 1,2,3,4,5,6,7,8,9,23,27,29,37,43,47,49,53,59,67,73,79,83,86,87,89,97,223,227,229,233,239,257,263,267,269,277,283,293,307,337... 任务 上面的列表继续,您的任务是找到第n个 HDN 输入值 n从1到的正整数4000 输出量 该nth HDN 测试用例 这是一些1索引测试用例。 请说明您在答案中使用的索引系统,以避免造成混淆。 input -> output 1 1 10 23 101 853 1012 26053 3098 66686 4000 85009 这是代码高尔夫球,因此以字节为单位的最低分数获胜。 …

15
g o l f a t 2
有时将笛卡尔坐标转换(x,y)为极坐标确实很费力(r,phi)。虽然你可以计算r = sqrt(x^2+y^2)很容易,你经常计算时的角度需要的情况下有些区别phi,因为arcsin,arccos以及arctan和所有其他三角函数有一个共同域,每个只有跨越半个圆。 在许多语言中,都有用于将直角坐标转换为极坐标的内置atan2函数,或者至少具有给定的(x,y)计算角度的函数phi。 任务 你的任务是写一个程序/功能采用两个(浮点,但不能同时为零)笛卡尔坐标(x,y),并输出对应的极角phi,其中phi必须处于度,弧度或等级(与等级余平均gradians其是1 /整圆的400),以您较方便的为准。 角度是在正方向上测量的,对于,我们有零角度(1,0)。 细节 您不得使用内置插件是计算角度phi给出两个坐标,其中包括atan2,rect2polar,argOfComplexNumber和类似的功能。但是,您可以使用通常的三角函数及其反函数,它们只需一个参数。任何单位符号都是可选的。 半径r必须为非负数,并且phi必须在范围内[-360°, 360°](无论输出270°还是,都无关紧要-90°)。 例子 Input Output (1,1) 45° (0,3) 90° (-1,1) 135° (-5,0) 180° (-2,-2) 225° (0,-1.5) 270° (4,-5) 308.66°
18 code-golf  math  geometry  trigonometry  code-golf  number-theory  fibonacci  code-golf  math  sequence  fibonacci  code-golf  string  code-golf  math  graphical-output  geometry  code-golf  string  code-golf  math  geometry  code-golf  math  bitwise  number  popularity-contest  graphical-output  image-processing  fractal  code-golf  number-theory  code-golf  date  multi-threading  code-golf  math  code-golf  math  number  sequence  code-golf  math  number  sequence  arithmetic  code-golf  decision-problem  logic-gates  code-golf  decision-problem  balanced-string  code-golf  math  arithmetic  combinatorics  code-golf  expression-building  code-golf  physics  code-golf  abstract-algebra  code-golf  number  arithmetic  integer  code-golf  ascii-art  number  code-golf  number-theory  primes  code-golf  arithmetic  grid  code-golf  code-golf  sequence  code-golf  kolmogorov-complexity  compression  code-golf  math  number  arithmetic  array-manipulation  code-golf  primes  hexagonal-grid  complex-numbers  code-golf  number  counting  code-golf  math  number  arithmetic 

4
公开由OS线程调度程序引起的不确定性
众所周知,现代操作系统具有线程调度程序,可以根据您的代码不了解的内部逻辑来选择不同的顺序来调度线程。通常,您设计多线程代码以确保强加给您的这种不确定性不会对您的输出产生有意义的影响。 这里的目标是相反的。产生一个程序,该程序以[0,99]为间隔打印整数,但由于OS线程调度程序的原因,该顺序因运行而异。 您必须实现“足够的不确定性”,定义为: 在10个试验的10个顺序集合中,您的程序必须在每个试验中至少产生9个唯一排列。在连续成功的10个测试中,您可能会有相当数量的失败尝试。 或者,换句话说,您需要运行100次程序,其中每10次运行的程序块最多具有两次输出相同结果的运行。 因此,偶尔将98和99交换不会减少费用。 这是一个代码高尔夫球,因此使用最少字节的答案将获胜。 细节 将输出写入标准输出,每行一个条目 如果您通过让两个线程将字符写入stdout(甚至偶尔)交织字符来破坏格式(导致偶发三位数或空行的情况),则结果无效 上述规则的唯一例外是,您可以在打印最后一个所需的数字后发出一个空行(不客气) 如果错过或重复任何必需的值,则结果无效 您的程序不必在单个核心处理器上具有不确定性(尽管是赞誉的) 如果您的程序仍然可以满足挑战的其他要求,并且线程系统是您的语言或您的语言的标准库的一部分,则您的程序可能使用实际上不受OS内核管理的绿色线程/纤维。 在现代处理器上,程序的运行时间必须可靠地在5秒以内 您不必指定在程序之外发生的环境更改,例如等待或设置更改。无论程序是连续运行100次还是每次运行之间有一个小时还是并行运行100次,您的程序都应该通过(这实际上可能会有所帮助...) 您可以使用诸如GPU或Xeon Phi之类的协处理器及其自身的内部调度机制来执行任务。规则适用于此的方式与适用于绿色线程的方式相同。 只要遵守本文中指定的规则,就可以通过各种睡眠,良率和其他技巧来激发调度程序 禁止操作 允许使用不确定性的唯一来源是调度程序调度线程运行的时间。以下列表并非详尽无遗,仅是为了提供一些示例,这些示例是您接受其他不确定性来源时被禁止执行的操作。 直接或间接访问任何种类的PRNG或硬件RNG功能(除非它是调度程序的固有部分)。 读取任何类型的输入(系统时间,文件系统,网络等) 读取线程ID或进程ID 自定义操作系统调度程序;您必须使用主流操作系统中的标准操作系统调度程序 也禁止自定义绿色线程/光纤调度程序。这意味着,如果您为此挑战编写语言,则必须使用OS线程。 答案验证 最好在所有常见的OS和现代处理器上都可以找到答案,并根据支持的广度来授予荣誉。但是,这不是挑战的要求。答案至少必须支持一个现代的SMP处理器和现代的操作系统。我将在硬件可用性方面测试主要答案。 如果您的输入将不会在运行Windows 10 v1607 x64的i7 5960x上产生所需的输出,请指定所需的环境 如果可以通过VMWare Workstation轻松复制,请提供确切的OS和VM规格 如果在上述两种情况下均无法生成,请同时记录测试内容的屏幕截图,如标题部分所述,并通过鼠标和键盘的交互作用(或任何非标准计算的控制方案)对屏幕进行手持视频录制设备使用)清晰可见,并将两个视频以及您的答案一起发布,并说明其工作原理 或者,使用匹配的硬件找一个久负盛名的长期用户(不是您)来重现结果并为您提供担保 如果您的输入使用的是外来编程语言,而典型的开发人员将不会被设置为编译/编辑/解释,请提供安装说明 如果您输入的内容取决于特定版本的JVM / Python解释器/其他版本,请指定 如果要在我的测试中连续进行10次以上的连续试验需要花费超过10分钟的时间,那么您将失败(因此,不要让成功的情况异常发生,尤其是当您处于较高水平时)运行时绑定)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.