[過去ログ] プログラミングのお題スレ Part13 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
306: 2019/02/22(金)06:36 ID:S1fPIClY(1)調 AAS
>>279 python

def f(lst): return ('空だ' if not lst else
','.join([str(x) for x in lst[:-1]])
+ (' and ' if len(lst)>1 else'')
+ str(lst[-1])
)

print(f( [ 1,'二',3,4,'五'] )) # 1,二,3,4 and 五
print(f( [1,'二'] )) # 1 and 二
print(f( [1] )) # 1
print(f([])) # 空だ
307: 305 2019/02/22(金)07:07 ID:HhIJRo4K(2/2)調 AAS
しまった既出だったorz
308: 2019/02/22(金)07:58 ID:6TNKk8ap(1/2)調 AAS
>>279 Ruby

f = -> a {a[0..-2].join(', ').sub(/.\K\z/, ' and ') << a[-1].to_s}

(-1..3).each{|r| puts f[[*0..r]]} # =>

0
0 and 1
0, 1 and 2
0, 1, 2 and 3
309: 2019/02/22(金)08:05 ID:6TNKk8ap(2/2)調 AAS
>>291
あ{{あ{い/}}/う} // 12文字
ああい/ああ/あう // 9文字
あ{あい/あ/う} // 9文字
310
(1): 2019/02/22(金)08:11 ID:EatRhjER(2/2)調 AAS
>>302
Smalltalkは1970年代頃にはすでにこんな感じで
https://upload.wikimedia.org/wikipedia/commons/6/6e/Smalltalk-76.blowup.png

IDEからお絵かきツールまで処理系に組み込みだったので
生活に密着したメソッドが揃っています!
311: 2019/02/22(金)09:34 ID:Ao+GBu+d(1)調 AAS
ラティス構造って要するに正規表現を生成すりゃーいいのか?
312: 2019/02/22(金)19:34 ID:CY9He0wk(1)調 AAS
>>233
海外の人の
https://enigmaticcode.wordpress.com/2013/10/15/enigma-136-twelve-point-square/
https://github.com/enigmatic-code/lattice_circles
313
(14): 2019/02/22(金)19:43 ID:FMSx1nas(1)調 AAS
お題:21の階乗を計算して表示せよ。
https://ideone.com/gQAd37
314: 2019/02/22(金)20:16 ID:9PVAJM4v(3/3)調 AAS
>>310
ほえー
315: 2019/02/22(金)21:26 ID:py41/SAb(1/2)調 AAS
>>313 JavaScript
console.log(Array.from({length: 21}, (v, i) => i + 1).reduce((acc, v) => acc * v));
316
(5): 2019/02/22(金)21:42 ID:THqrb0iU(1)調 AAS
お題:
長方形のフィールドが与えられる。フィールド上では上下左右に移動することができる。
各マスの数字はそのマスに入るためのコストを表す。
SからGに向かうときの最小コストを求めよ。(SとGのコストは0とする)

S5111
1115G
=> 6

S1111
98642
G1111
=> 9

13457689768914512071934123457
G4578901258901212890361125312
37890423076834712378998725463
16890102569615902061456259893
34582934765923812893461515232
57896123896741378915691551697
89013897456123457162501835479
21389046013845610034623405686
8902346203948612341356362342S
=> ?
317: 2019/02/22(金)21:49 ID:2ARSyvEs(1)調 AAS
>>279
>>289
Common Lispで~#[...~]を使ってみた
(format t "~{~S~#[~; and ~:;, ~]~}" '(apple banana orage mango))
318: 2019/02/22(金)22:00 ID:py41/SAb(2/2)調 AAS
こういう文章題好き。
でも実力不足で解けない…
a*かな?
319: 2019/02/22(金)22:05 ID:AX8XyL13(1)調 AAS
>>313 Perl5

use bignum (l=>GMP);

$n = 1;
$n *= $_ for 2..21;

print "$n\n";

実行例
~ $ perl 13_313.pl
51090942171709440000
320: 2019/02/22(金)22:26 ID:eQxt3fSm(1)調 AAS
>>313 JavaScript
console.log((f=n=>n?n*f(n-1):1)(21))
321
(1): 2019/02/23(土)00:16 ID:KCAwaSn8(1)調 AAS
>>313 Smalltalk-76

https://imgur.com/a/a7MClxL

322: 2019/02/23(土)00:27 ID:khwKgkQE(1)調 AAS
>>313 python
#階乗1
import math
print('階乗1',math.factorial(21))

#階乗2
def f(n): return f(n - 1)*n if n > 1 else n
print('階乗2',f(21))

#階乗3
print('階乗3',(lambda x:f(21))( globals().update({"f": lambda n: n*f(n - 1) if n > 2 else n })))
323: 2019/02/23(土)01:14 ID:9pS68leH(1/2)調 AAS
>>279
Kotlin script
最後のカンマを正規表現の文字列置換で and にしただけ。

println(listOf("abc", "def", "xyz").joinToString(", ").replace(",([^,]*)$".toRegex(), " and$1"))

出力

abc, def and xyz
324: 2019/02/23(土)01:19 ID:CTQXI+x5(1)調 AAS
lispって組み込みで素数かどうか判定するやつ提供されてるのか、、、面白い!
325: 2019/02/23(土)02:10 ID:9pS68leH(2/2)調 AAS
>>313
bc

n = 2; for (i = 3; i <= 21; i++) n*=i; n

出力
51090942171709440000
326
(1): 2019/02/23(土)03:31 ID:nkO3lkCA(1)調 AAS
>>313 dc

~$ echo 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 ********************p | dc

51090942171709440000
327: 2019/02/23(土)03:32 ID:R2s6jSV3(1/7)調 AAS
bcのってjsでもそのまま動くんだな。どっちもc由来文法だからか…
for(i=s=1;i<22;)s*=i++;s
328: 2019/02/23(土)04:30 ID:R2s6jSV3(2/7)調 AAS
>>326
恥ずかしながらdcコマンド知らなかった…いいねこれ。
~$ echo "$(seq -s' ' 1 21)$(printf '* %.0s' {1..20})p" | dc
51090942171709440000
329: 2019/02/23(土)08:05 ID:xK8/Ze+A(1/2)調 AAS
>>313 Maxima
print(21!);
330: 2019/02/23(土)08:20 ID:znXlogg7(1)調 AAS
>>313
;; Common Lisp
(loop for i from 1 to 21 for r = i then (* r i) finally (print r))
331: 2019/02/23(土)08:45 ID:DQY5g4De(1/3)調 AAS
>>316
これは、本格的だな

ダイクストラ・A* みたいな、順位キュー(priority queue)を使わないと、いけないかも
332: 2019/02/23(土)09:18 ID:IBS/n4EE(1)調 AAS
>>313
Smalltalk (Pharo 7)
21 factorial
==> 51090942171709440000
333: 2019/02/23(土)12:01 ID:+GfRG2y6(1/2)調 AAS
>>316 Java
https://ideone.com/ZhJHKg
334: 2019/02/23(土)12:26 ID:DQY5g4De(2/3)調 AAS
>>313
Ruby

( 1..21 ).inject( 1, :* )
335
(6): 2019/02/23(土)12:44 ID:W0y17tlk(1/2)調 AAS
python3
標準ライブラリ内の数学関数の例
import math
print(math.factorial(21))
そうじゃない例
from functools import reduce
print(reduce(lambda x,y:x*y,range(1,22)))

ちょっと高度化したお題
素数階乗n#を実装せよ
ただし素数階乗とは与えられた整数n以下のすべての素数の積である

1#=1
3#=4#=6
5#=30
336: 2019/02/23(土)13:22 ID:R2s6jSV3(3/7)調 AAS
例がちょっと意味分からない
1#=1
1以下の素数の積なのに1?
3#=4#=6
何これ?
5#=30
これだけ分かる
337
(1): 2019/02/23(土)13:25 ID:R2s6jSV3(4/7)調 AAS
あ、二番目分かりました。
一行目だけ分からない
338: 2019/02/23(土)13:28 ID:+GfRG2y6(2/2)調 AAS
>>335 Java
https://ideone.com/4M3U1T
339
(1): 2019/02/23(土)13:34 ID:vMXU7Bcc(1/2)調 AAS
>>337
掛けるもののがないときは1として扱うのが普通だよ
0!とかΠの項数が0の時とか

ただこの出題者はそのへん理解してないだろうから解く気がしない
340
(2): 2019/02/23(土)13:40 ID:R2s6jSV3(5/7)調 AAS
>>339
ありがとう。
数学と同じとは限らないんだね。
1も素数としてやってみます。
341: 2019/02/23(土)13:47 ID:+eBVT+rm(1)調 AAS
>>340
1を素数と見做すんじゃなく空積の1
342
(1): 2019/02/23(土)13:53 ID:W0y17tlk(2/2)調 AAS
というか数学でも0!=1!=1と定義されているのが普通だと思うし
高校でも大学でもそうじゃない問題を見たことがないのだが
343: 2019/02/23(土)13:53 ID:vMXU7Bcc(2/2)調 AAS
>>340
いや、むしろ数学の世界での慣習なんですけど…
344: 2019/02/23(土)14:28 ID:DQY5g4De(3/3)調 AAS
単位元(初期値)だろ。
足し算は0、掛け算は1 が、単位元

Ruby で、
( 1..21 ).inject( 1, :* )

1 が初期値で、:* で掛け算メソッドを渡している
345: 2019/02/23(土)15:02 ID:R2s6jSV3(6/7)調 AAS
>>342
> ただし素数階乗とは与えられた整数n以下のすべての素数の積である

と書いてあるので、

「与えられた整数n」が1
のとき、
「与えられた整数n以下のすべての素数の積」
は、
「1以下のすべての素数の積」
となり、
1以下に素数はないのになんで例で答がが1になってるんだろう、と思った次第です。
お騒がせしました。
346
(1): 2019/02/23(土)15:15 ID:R2s6jSV3(7/7)調 AAS
できた
JavaScript
const prodPrimes = n => {
const primes = [1];
for (let m = n; m > 1; m--) {
let prime = 0;
for (let i = 2; i <= m - 1; i++) {
if (m % i === 0) prime = i;
}
primes.push(prime || m);
}
return [...new Set(primes)].reduce((acc, p) => acc * p);
}
console.log(prodPrimes(1)); //=> 1
console.log(prodPrimes(3)); //=> 6
console.log(prodPrimes(4)); //=> 6
console.log(prodPrimes(5)); //=> 30

今夜はPythonで>>316に挑戦したい
347: 2019/02/23(土)15:45 ID:xK8/Ze+A(2/2)調 AAS
>>335 J
f =: 3 : 0
*/ 1 , I. 1 p: i. >:y
)

f@> 1 3 4 5 21
1 6 6 30 9699690
348: 2019/02/23(土)15:50 ID:5fn4St+r(1/2)調 AAS
Jどこで覚えればいいの?
Effective J的な読みやすい書籍ないの?
349: 2019/02/23(土)16:01 ID:BD+5EZ0V(1)調 AAS
>>313 Common Lisp
(defun ! (n)
  (apply #'* (loop for i from 1 upto n collect i)))

CL-USER> (! 21)
51090942171709440000
CL-USER> (! 0)
1
CL-USER>
350: 2019/02/23(土)16:18 ID:Z/STDkD0(1)調 AAS
>>335 ruby
https://ideone.com/ccP7e9
351
(1): 2019/02/23(土)17:50 ID:oGmxRysL(1)調 AAS
>>321
これただのお絵描きやん
規制しろ!
352: 2019/02/23(土)18:00 ID:5fn4St+r(2/2)調 AAS
でかいキノコやらしい…
353: 2019/02/23(土)18:14 ID:2kPF298z(1)調 AAS
>>316 Perl5 Dijkstra法による最短経路探索 (priority queueを用いない実装)
https://ideone.com/XcsBQe
354
(1): 2019/02/23(土)20:22 ID:ejRNWGjN(1)調 AAS
>>316
python(pypy) https://ideone.com/DV1w4s

本線: キュー使用したダイクストラ (+ 経路復元)。

サンプル程度なら、ワーシャルフロイド(頂点^3)でも回る、と同方も追加。
さすがにpythonには少々きつく、pypyに逃げた。
355
(1): 2019/02/24(日)00:49 ID:ROsmA06r(1)調 AAS
>>354 pypy に逃げたという話は、その方がかなりスピードが早いからという事? どの位のスピード差になるんだろう?
356: 2019/02/24(日)01:37 ID:jRfp9b62(1)調 AAS
>>313
Kotlin script

println("%.0f".format((2..21).map { it.toDouble() }.reduce { n1, n2 -> n1 * n2 }))
357: 2019/02/24(日)01:45 ID:W3fm5ADB(1)調 AAS
>>355
何も変えずpython3で実行 https://ideone.com/IArwja

約6秒 vs 約0.2秒

まぁ、本当はpython3向けにもう少し治せそうだが
358
(3): さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/24(日)05:55 ID:xnYazQgz(1/3)調 AAS
お題: 3分タイマーを作れ。3分間待って、音を鳴らすか、画面に「BEEP!」と表示せよ。ただし、CPU時間を無駄に消費してはならない。
359
(4): さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/24(日)06:09 ID:xnYazQgz(2/3)調 AAS
お題: スリープソートを実装せよ。
360: さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/24(日)06:27 ID:xnYazQgz(3/3)調 AAS
お題: 玉入れ競争のシミュレーションを作れ。1チームに玉50個で園児3人。2チームある。園児それぞれが10秒に玉1個投げる。
一回投げると、3秒後に1/2の確率で玉が入る。イベントのたびに「チーム#1の園児#1が玉を投げました」「チーム#2の園児#1の玉が入りました」などと表示する。
361: 2019/02/24(日)07:40 ID:lq3Vey6S(1/3)調 AAS
>>313
@Mathematica

ライブラリ版
Factorial[21]

非ライブラリ版
Range[21] // Apply[Times, #] &
362: 2019/02/24(日)08:11 ID:UKaroUbg(1/2)調 AAS
>>335
Smalltalk (Pharo 7)
[:n | (Integer primesUpTo: n+1) inject: 1 into: [:p :x | p * x]] value: 5
==> 30
363: 2019/02/24(日)08:39 ID:lq3Vey6S(2/3)調 AAS
>>335
@Mathematica
Range[5] // Select[#, PrimeQ] & // Apply[Times, #] &
364
(14): 2019/02/24(日)08:59 ID:k3GW1oFG(1)調 AAS
お題
与えられた文字列を縦に表示する

入力
hello

出力
h
e
l
l
o
365: 2019/02/24(日)09:18 ID:FkqnBGPg(1)調 AAS
>>364
ruby -e "'hello'.split('').each do |c| puts c end"
366: 2019/02/24(日)09:39 ID:UNsYm68I(1)調 AAS
>>364 octave
https://ideone.com/MZvdVC
367: 2019/02/24(日)10:41 ID:gbE7FXAb(1/4)調 AAS
>>364 Perl5

~ $ echo -n hello | perl -naF -E 'say for @F'
h
e
l
l
o
368: 2019/02/24(日)10:45 ID:gbE7FXAb(2/4)調 AAS
>>358 Perl5

sleep 3*60;
print "BEEP!\n";
369: 2019/02/24(日)10:51 ID:5XYYe3Vz(1)調 AAS
>>346
Pythonじゃ緩すぎだろw
Brainfu*kとかJで挑戦したいと言わないと
世のマゾヒスト達からマサカリ投げられるぞw
370
(1): 2019/02/24(日)11:01 ID:gbE7FXAb(3/4)調 AAS
>>359 Perl5

use List::Util shuffle;
@a = shuffle 1..5;
print "shuffled) @a\n";

use threads;

use threads::shared;
my @b: shared;

sub f {
&nbsp;&nbsp;my $n = shift;
&nbsp;&nbsp;sleep $n;
&nbsp;&nbsp;push @b, $n;
}

push @thr, threads->create(\&f, $_) for @a;
$_->join() for @thr;

print "sorted ) @b\n";

実行結果
~ $ perl 13_359.pl
shuffled) 5 3 1 2 4
sorted ) 1 2 3 4 5
371: 2019/02/24(日)11:04 ID:gbE7FXAb(4/4)調 AAS
>>370 しまった、&nbsp;がそのまま表示されている…orz 全角スペースに置換して修正
>>359 Perl5

use List::Util shuffle;
@a = shuffle 1..5;
print "shuffled) @a\n";

use threads;

use threads::shared;
my @b: shared;

sub f {
 my $n = shift;
 sleep $n;
 push @b, $n;
}

push @thr, threads->create(\&f, $_) for @a;
$_->join() for @thr;

print "sorted ) @b\n";

実行結果
~ $ perl 13_359.pl
shuffled) 5 3 1 2 4
sorted ) 1 2 3 4 5
372: 2019/02/24(日)14:09 ID:UKaroUbg(2/2)調 AAS
Smalltalk (Pharo 7)
String cr join: 'hello'
==> 'h
e
l
l
o'
373: 2019/02/24(日)14:14 ID:lq3Vey6S(3/3)調 AAS
>>364
@Mathematica

"hello" // Characters // Riffle[#, "¥n"] & // StringJoin
374: 2019/02/24(日)14:37 ID:ke/CY5a3(1/2)調 AAS
>>351
いや、21 factorialをSmalltalk-76で実際に計算したものですよ!
動画にしたほうがよかったですか?^^;
375: 2019/02/24(日)15:44 ID:R6DRM9b9(1/2)調 AAS
>>335 Squeak Smalltalk (このコードは Pharo では動かない)

| fn |
fn := [:n | (Integer primesUpTo: n + n isPrime asBit) inject: 1 into: #*].
#(1 3 4 5) collect: fn. "=> #(1 6 6 30) "
376: 2019/02/24(日)15:56 ID:R6DRM9b9(2/2)調 AAS
>>364 Squeak Smalltalk (同じく Pharo とは互換性がないコードで)

'hello' joinSeparatedBy: Character cr.

"= 'h
e
l
l
o' "
377: 2019/02/24(日)16:12 ID:ke/CY5a3(2/2)調 AAS
>>359 Pharo/Squeak Smalltalk

| sleepsort |
sleepsort := [:arr |
| queue |
queue := SharedQueue new.
arr do: [:x | [(x * 2) milliSeconds asDelay wait. queue nextPut: x] fork].
(1 to: arr size) inject: #() into: [:acc :idx | acc, {queue next}]
].

sleepsort value: #(2 1 5 10 7 8 3 6 4 9)

"=> #(1 2 3 4 5 6 7 8 9 10) "
378
(1): 2019/02/24(日)17:18 ID:+6ZRRI/z(1/2)調 AAS
>>358 puthonista ( iPhone )

# iPhoneのシステムサウンドを使ってアラームを出す。
import sound,time

alarm = '/System/Library/Audio/UISounds/alarm.caf'
time.sleep(3*60)
id = sound.play_effect(alarm)
379: 2019/02/24(日)17:40 ID:+6ZRRI/z(2/2)調 AAS
>>378 pythonista の間違い。
380: 2019/02/24(日)19:37 ID:Wf3q+Rvy(1)調 AAS
>>359 Bash

#!/usr/bin/bash

N=5

IFS=$'\n'
a=(`seq $N | shuf | sed -e 's/\([0-9]\+\)/(sleep \1; echo \1 >> result)/'`)
IFS="$'\n'$'\t' "

[ -f ./result ] && rm ./result
for s in "${a[@]}"; do
 echo "$s"
 sh -c "${s}" &
done

wait
cat ./result

~ $ sh 13_359.sh
(sleep 2; echo 2 >> result)
(sleep 5; echo 5 >> result)
(sleep 4; echo 4 >> result)
(sleep 1; echo 1 >> result)
(sleep 3; echo 3 >> result)
1
2
3
4
5
381: 2019/02/25(月)02:16 ID:VuzBCyor(1/2)調 AAS
>>364
Kotlin script

while (readLine()?.map { it }?.joinToString("\n")?.let { println(it); it } != null);
382: 2019/02/25(月)02:42 ID:VuzBCyor(2/2)調 AAS
>>358
sh

sleep 180 ; echo 'BEEP!'
383: 2019/02/25(月)02:47 ID:yxDnlxm5(1)調 AAS
>>364
ruby -e "'hello'.each_char do |c| puts(c) end"
384
(2): さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/25(月)02:47 ID:qxzw13Bf(1/2)調 AAS
お題: スリープと複数のスレッドを使って素数を10個求めよ。1つのスレッドは素数倍数のループを意味する。
385: さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/25(月)03:51 ID:qxzw13Bf(2/2)調 AAS
>>384
ヒント: 一秒ごとにリセットするカウンターを使う。
386: 2019/02/25(月)09:19 ID:KMrhrKmq(1/2)調 AAS
意味がわからん
387: 2019/02/25(月)10:35 ID:OZaxYFd4(1)調 AAS
模範解答があるんでしょ
だからヒントを作れる
なら最初から正解を出せと
388: 2019/02/25(月)10:52 ID:mBiroDnU(1)調 AAS
このコテうぜえから書き込み禁止にしろ
389: 2019/02/25(月)11:25 ID:4jlXoier(1)調 AAS
スリープタイマに番号付けてON/OFF出来ればエラトステネスの篩で素数が出来る。
390: 2019/02/25(月)17:25 ID:KMrhrKmq(2/2)調 AAS
わかんないからちょっとやってみて
391: 2019/02/25(月)18:50 ID:IURODyYm(1)調 AAS
>>364 J
smoutput@>'hello'
392: 2019/02/25(月)19:00 ID:mboQc3Dn(1)調 AAS
>>364 JavaScript
[...'hello'].forEach(c=>console.log(c))
または
for(let c of 'hello')console.log(c)
または
console.log([...'hello'].join`\n`)
393: 2019/02/26(火)01:01 ID:ZoqutRDZ(1)調 AAS
>>364 Ruby
puts "Hello".split("")
394
(5): 2019/02/26(火)02:14 ID:Jyzj3K2Z(1)調 AAS
お題:OS名を出力する
395: 2019/02/26(火)02:51 ID:lsok3PaS(1/2)調 AAS
>>394
Linux等、UNIX系OSの場合コマンドラインから以下を入力するだけで GNU/Linux 等と出てくるが、
どうしてもプログラムにしたいのならシェルスクリプトの中でこれだけ実行するようにしておけばよい。

uname -o
396: 2019/02/26(火)02:53 ID:lsok3PaS(2/2)調 AAS
>>394
Windows のコマンドプロンプトの場合はこれ。ただしバージョンも一緒に出てくる。

ver

これもどうしてもプログラムにしたいならバッチファイルでこれだけ実行するようにしておけばよい。
397: 2019/02/26(火)07:52 ID:xb9W0X9p(1)調 AAS
pythonista

import os,sys

print(os.uname() )
# posix.uname_result(sysname='Darwin', nodename='iPhoneXsMAX', release='18.2.0', version='Darwin Kernel Version 18.2.0: Wed Dec 19 20:28:53 PST 2018; root:xnu-4903.242.2~1/RELEASE_ARM64_T8020', machine='iPhone11,6')

print(os.uname()[0],os.uname()[4],sys.platform )
# Darwin iPhone11,6 ios

from distutils.util import get_platform

print(get_platform())
# darwin-18.2.0-iPhone11,6
398: 2019/02/26(火)08:17 ID:N21l9DY8(1/2)調 AAS
>>394 J
osname =: 3 : 0
a =. 9 !: 12 y
if. a = 5 do. 'unix'
else. a = 6 do. 'windows'
else. do. 'other'
end.
)
399: 2019/02/26(火)10:23 ID:E0EMtjG2(1)調 AAS
>>394
Perl5

print "$^O\n";
400: 2019/02/26(火)15:46 ID:N21l9DY8(2/2)調 AAS
>>364 Lua
io.write((io.read("*a"):gsub(".","%0\n")))
401: 2019/02/26(火)15:54 ID:gjK+vdjr(1)調 AAS
お題: 任意のn-オミノを全種類出力するプログラム
402: 2019/02/26(火)15:55 ID:IBhh82RD(1)調 AAS
>>364
標準出力から与えられる場合
import sys
for x in sys.stdin.read() : print(x)

>>394と混合
import os
for x in os.getenv("OS"): print(x)
403: 2019/02/26(火)18:05 ID:KX5s2hIr(1)調 AAS
>>384 Squeak/Pharo Smalltalk

| tick start primes sema sieveMaker processes ans |
tick := 1 second.
start := DateAndTime now.
primes := SharedQueue new.
sema := Semaphore new.
sieveMaker := [:x | [[(tick * x) asDelay wait. sema signal] repeat]].
processes := SharedQueue new.
tick asDelay wait.
processes nextPut: [
[ tick asDelay wait.
sema isSignaled ifFalse: [
| prime sieve |
prime := primes nextPut: (DateAndTime now - start / tick) asInteger.
sieve := sieveMaker value: prime.
processes nextPut: sieve fork
].
sema initSignals
] repeat
] fork.

ans := (1 to: 10) collect: [:idx | primes next].
1 to: processes size do: [:idx | processes next terminate].
ans "=> #(2 3 5 7 11 13 17 19 23 29) "
404: 2019/02/26(火)20:30 ID:cNXsTeTJ(1)調 AAS
お題: (Aが真 または Bが真) ならば Cが真である。 であるをプログラムしなさい。
405: 2019/02/26(火)23:29 ID:Tg4W+a2u(1)調 AAS
お題: 円の最大重複数を求めよ

例題 以下画像の場合、最大重複数は4です。
https://imgur.com/pbh3VSE.png

円の重複数え方は、2つの円が重なっていたら、重なっている数は2とします。
また、円の重複判定の際、2つの円が円周上の1点のみで重なる場合、それらの円は重なっていないとします。
(理由は重複している面積は0だから。)

以下、本題。
画像のようなNo.0からNo.99までの100個の円があります。
これの円の最大重複数を整数で答えなさい。
https://imgur.com/WiRHA1F.png


入力データ:
https://drive.google.com/open?id=1kl8bS3GOr8Ot2OMMACdCG0SJMpEKxLO3

入力データはx座標 y座標 r(半径)の順で記述されたリストで、すべて実数です。
与えられる入力データは
-800.0 ≦ x ≦ 800.0
-800.0 ≦ y ≦ 800.0
100.0 ≦ r ≦ 400.0
の条件を満たします。

画像は自作、多分正しい。
1-
あと 597 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.037s