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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
233
(2): 2019/02/16(土)16:47 ID:akVlWGeE(1/2)調 AAS
ふたたび、円の内部の整数点を求めるやつ。個数ごとその最小半径を求める。
41個、47個とかが難し目だった気が。
234
(1): 2019/02/16(土)17:07 ID:wpb3vJTT(2/2)調 AAS
内部じゃなくて円周上のやろ
235: 2019/02/16(土)17:07 ID:cltO7Ts6(1)調 AAS
>>230
236
(1): 2019/02/16(土)17:27 ID:PD6v+6Vh(2/3)調 AAS
>>232 組み込み使っていいんだよね? (面倒になるけど、使わなくても書けるけどサ…)
Perl5

use POSIX qw(floor ceil);
for (0.5, -1.1, 3) {
@a = ("$_ => ",
sprintf('%d', $_), #int($_),
($_ > 0 ? ceil($_) : ceil($_-1)),
ceil($_),
floor($_)
);
print "@a\n";
}

実行結果
~ $ perl 13_232_round.pl
0.5 => 0 1 1 0
-1.1 => -1 -2 -1 -2
3 => 3 3 3 3
237: 2019/02/16(土)17:33 ID:PfkkbXxw(1)調 AAS
>>230 Ruby
def bs(ary)
  ary.tap do |a|
    (a.size**2).times do
      (a.size - 1).times do |i|
        a[i + 1], a[i] = a[i, 2] if a[i] > a[i + 1]
      end
    end
  end
end
p bs([3, 1, 4, 15, 92]) # => [1, 3, 4, 15, 92]

>>232
sgn = -> n {n <=> 0}
r4 = -> n {n.floor}
r3 = -> n {-r4[-n]}
r2 = -> n {sgn[n] * r3[n.abs]}
r1 = -> n {sgn[n] * r4[n.abs]}

[0.5, -1.1, 3].each{|i| puts 'x = %p => %p %p %p %p' % [i, r1[i], r2[i], r3[i], r4[i]]}
# =>
x = 0.5 => 0 1 1 0
x = -1.1 => -1 -2 -1 -2
x = 3 => 3 3 3 3
238: 2019/02/16(土)17:34 ID:PD6v+6Vh(3/3)調 AAS
>>236 これだと
入力が0のとき
>(2) 0から遠ざかる
が-1になっちゃう。

($_ > 0 ? ceil($_) : ceil($_-1)),

↓を

($_ >= 0 ? ceil($_) : ceil($_-1)),

とすべきでしょうね。スマソ
239: 2019/02/16(土)18:34 ID:akVlWGeE(2/2)調 AAS
>>234
円周上が正解
240
(1): 2019/02/16(土)22:05 ID:lcFO2eao(1/2)調 AAS
>>262 J
f =: (**<.@|),(**>.@|),<.,>.
f 0.5
0 1 1 0

f _1.1
_1 _2 _1 _2

f 3
3 3 3 3
241: 2019/02/16(土)22:20 ID:yZTjSyit(1)調 AAS
>>262に期待。
242: 2019/02/16(土)22:38 ID:lcFO2eao(2/2)調 AAS
>>240
間違えました
262ではなく>>232でした
243: 2019/02/16(土)23:30 ID:ReDOqu2L(1)調 AAS
>>232 octave
https://ideone.com/7nvSr1
244
(1): ◆QZaw55cn4c 2019/02/17(日)00:20 ID:TOi2tzGo(1/2)調 AAS
>>232 をやろうとおもって、IEEE754 の float/double を直接触る方法を探しているのですが、なにかいい方法はないでしょうか…
245
(1): 2019/02/17(日)00:24 ID:xZHcxwZO(1)調 AAS
言語も言わずに(ry
https://qiita.com/nia_tn1012/items/d26f0fc993895a09b30b
246: ◆QZaw55cn4c 2019/02/17(日)00:30 ID:TOi2tzGo(2/2)調 AAS
>>245
thx a lot !!
247: 2019/02/17(日)01:04 ID:iMRi3xg5(1)調 AAS
>>244
あった
248
(1): 2019/02/17(日)08:30 ID:SfPzlMrR(1/4)調 AAS
>>233
これ

「Nに対し平面上の円で、その円周上の整数点がちょうどN個となる円の最小半径を求めよ」

例)
x^2 + y^2 = 1の整数点は4つだが、最小半径ではない。
(x-0.5)^2 + (y-0.5)^2 = 0.5の方が小さい。
249: 2019/02/17(日)09:09 ID:SfPzlMrR(2/4)調 AAS
>>248
網羅的は、きりがなく一つの予想をたてた。
一つ半径を求めたら、次のような操作で半径を縮めたものと、真の最小半径が一致する予想。

半径rの整数点がNだとして。 rを整数比で縮小して中心をずらす。

たとえば上の例だと、r=1で、r → 2/4 r で、
(2x -1)^2 + (2y -1)^2 = 2r
両辺4倍して中心ずらした式
250: 2019/02/17(日)14:03 ID:SfPzlMrR(3/4)調 AAS
整数比かけるので有理数半径ならすべて作り出せるから当たり前か
無駄なく高速に半径縮められる手法が大事か
251: 2019/02/17(日)14:06 ID:SfPzlMrR(4/4)調 AAS
あと半径は間違いで、半径でなく右辺、半径^2 だった
252
(1): 2019/02/17(日)19:56 ID:qArvPplr(1)調 AAS
お題
パンケーキソートを実装する
253: 2019/02/18(月)22:45 ID:Gp2d+oGP(1)調 AAS
>>252 Perl5 (効率の良いアルゴリズムではないけれど、まずは…)

use List::Util shuffle;

@a = shuffle 1..20;
print "shuffled) @a\n";

sub flip {
($m, $n) = @_;
@a[0..$m] = reverse @a[0..$m];
@a[0..$n] = reverse @a[0..$n];
}

for $i (reverse 1..$#a) {
 $k = undef;
 for (0..$i) {
  $k = $_ if (!defined($k) or $a[$k] < $a[$_])
 }
 flip($k, $i) if $k < $i;
}

print "sorted ) @a\n";

実行例
~ $ perl 13_252_clumsy_pancake_sort.pl
shuffled) 18 6 2 13 16 1 12 15 10 4 17 20 9 7 19 14 5 11 3 8
sorted ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
254: 2019/02/19(火)22:19 ID:sIqHxZ1N(1)調 AAS
; Common Lisp

(defun flip (seq n)
 (concatenate (type-of seq) (nreverse (subseq seq 0 (1+ n))) (subseq seq (1+ n))))

(defun pancake-sort (seq predicate)
 (loop for s = seq
   then (if j (flip (flip (flip (flip s (1- j)) (1- i)) i) j) s)
   for i from 1 to (1- (length seq))
   for j = (position (elt s i) s :end i :test predicate)
   finally (return s)))
255
(2): 2019/02/19(火)22:25 ID:flzwRht/(1)調 AAS
お題:1から8までのカードを混ぜ、2枚そこから引いた時1枚目*10+2枚目が素数になる確率を求める。
ただし、
1. 小数第3位で四捨五入した後に回答すること。
2. 数学的な証明は禁止。
3. 各カードは9-その数字の数だけ存在する。 (例:1ならば8枚存在する)
4. 各カードが出る確率はまだ引かれていないカードの枚数に比例する。
256: 2019/02/20(水)00:45 ID:VV/V1Ls8(1/2)調 AAS
python
print(0.31)
257: 2019/02/20(水)00:55 ID:SyQ4jkRO(1/3)調 AAS
>>255 Perl5
$R = 0.0;
@s = map{($_) x (9-$_)} 1..8; #say "@s";
$t = @s; #say $t;
for (qw{11 13 17 23 31 37 41 43 47 53 61 67 71 73 83}) {
 @o = split'';
 my %h;
 $h{$_}++ for @s;
 my $r = $h{$o[0]}-- / $t;
 $r *= $h{$o[1]}-- / ($t - 1);
 $R += $r;
}
printf "%3.2f\n", $R;

実行結果
~ $ perl 13_255.pl
0.31
258
(3): さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/20(水)00:58 ID:5PEVWiZL(1)調 AAS
お題: URLで場所を指定された、インターネット上のテキストファイルをダウンロードするプログラム。
259: 2019/02/20(水)01:16 ID:SyQ4jkRO(2/3)調 AAS
>>258 Perl5
require LWP::UserAgent;
$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)');
use HTTP::Cookies;
$ua->cookie_jar(HTTP::Cookies->new(file => 'lwp-cookies.txt', autosave => 1));
$url = 'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt';
$file = './0_README.txt';
$res = $ua->mirror($url, $file);
print $res->status_line, "\n";

実行例
~ $ perl 13_258.pl
200 OK

(※こういうのは、別に今急に考えたわけじゃなく、日常的に作って使っているのですぐ投稿できました)
260
(2): さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/20(水)01:37 ID:jAMIqMc6(1/2)調 AAS
WSHでダウンロードできるヤツ、おる?
261: 2019/02/20(水)01:40 ID:SyQ4jkRO(3/3)調 AAS
>>260
wget.exe か curl 使えば?
262
(2): 2019/02/20(水)02:05 ID:Te3YpcYw(1)調 AAS
>>260 download.js
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp.Open("GET", "http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt", false);
xmlhttp.Send();
var stream = new ActiveXObject("Adodb.Stream");
stream.Type = 1;
stream.Open();
stream.Write(xmlhttp.responseBody);
stream.SaveToFile("0_README.txt", 2);
263
(1): 2019/02/20(水)02:28 ID:PF1BNO4k(1/2)調 AAS
pythonista stash 反則?

$ wget http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt

$ ls -la *.txt
0_README.txt (2.4K) 2019-02-20 02:21:45
264: 2019/02/20(水)02:51 ID:qYIek1dL(1)調 AAS
>>255
;; Common Lisp

(let ((prime (list 2)))
 (defun primep (n)
  (loop for i from (1+ (car prime)) upto n
      unless (find-if (lambda (j) (zerop (mod i j))) prime :from-end t)
      do (push i prime))
  (find n prime)))

(defun nearest (i j)
 (/ (floor (+ (* i (expt 10 j)) 0.5)) (expt 10 j)))

(loop with cards = (loop for i from 1 to 8 nconc (make-list (- 9 i) :initial-element i))
    and n = 0 and p = 0
    for one in cards
    do (loop for two in (remove one cards :count 1)
         do (incf n)
         if (primep (+ (* 10 one) two)) do (incf p))
    finally (format t "~,3F~%" (nearest (* (/ p n)) 3)))
265
(2): さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/20(水)03:32 ID:jAMIqMc6(2/2)調 AAS
わーい、これでダウンロード制限された端末でDLできるぞ。やったー!
266: 2019/02/20(水)03:35 ID:VV/V1Ls8(2/2)調 AAS
お題スレってそういう趣旨の場所だっけか?
267: 2019/02/20(水)03:43 ID:J4bEIWoi(1)調 AAS
>>265
できるかなあ?どういう制限しているかにもよるぞ。
268
(3): 2019/02/20(水)05:32 ID:B2QSVSiS(1/3)調 AAS
PowerShell にも、curl, wget ある

get-alias (gal)

curl -> Invoke-WebRequest
wget -> Invoke-WebRequest

と言うことは、Ruby からも、そのコマンドを呼べる
269
(2): 268 2019/02/20(水)09:30 ID:B2QSVSiS(2/3)調 AAS
なんと、コマンドプロンプトで、
where curl と入力すると、
C:\Windows\System32\curl.exe

PowerShell の、curl, wget は、Invoke-WebRequest のエイリアスだけど、
curl.exe は、本物のcurl !
270: 2019/02/20(水)09:49 ID:hK+DOQws(1/2)調 AAS
>>268>>269
死ね
271: 2019/02/20(水)09:52 ID:PF1BNO4k(2/2)調 AAS
>>258 >>265 なんだ下心があったのか。

pythonista stash は以下のコマンドが使える。

help(StaSh) v0.7.1
alias, cat, cd, clear, cowsay, cp, crypt, curl, cut, dropbox_setup, du, easy_config, echo, edit, exit, fg, find, ftpserver, gci, gh, git, grep, head, httpserver,
jobs, kill, latte, ls, mail, man, mc, md5sum, mkdir, monkeylord, more, mount, mv, openin, pbcopy,
pbpaste, ping, Usage, pip, printenv, printhex, ptinstaller, pwd, py-tree, python, python3, quicklook, rm, rmdir, scp, selfupdate, sha1sum, sha256sum,
sort, source, sqlite, ssh, ssh-keygen, stashconf, tail, tar, telnet, totd, touch, umount, uniq, unzip, version,
wc, webviewer, wget, whatis, which, wol, xargs, zip

ftpserver や、httpserverは簡易的なサーバーになる。
ssh やscp 、tar zip などは使い道多そう。
webviewer てpython の下でブラウザが立ち上がってるみたいなんだがどんな使い道があるんだろう?

なお、標準python用のシェルは、xonsh と言うのがあるらしい。 xonsh では、標準的なshellコマンドと並行してpython スクリプトも実行できるから強力。
stash ではそれはできない。
272
(1): 268 2019/02/20(水)10:31 ID:B2QSVSiS(3/3)調 AAS
WSH はわからないけど、Ruby では、

require 'nokogiri'

html = `curl http://www.example.com/`
# curl は書き込めないので、全角に変換した

doc = Nokogiri::HTML( html )

elements = doc.css( "h1" )
puts elements.first.content #=> Example Domain
273: 2019/02/20(水)11:50 ID:hK+DOQws(2/2)調 AAS
>>272
死ね
274: 2019/02/20(水)13:03 ID:agArr1lp(1)調 AAS
>>269
なんかね。UNIX系OSで昔からよく使われてたコマンドを移植したようで、tarとか他にも色々あったと思った。
275: 2019/02/20(水)17:40 ID:3A0CDvTh(1/2)調 AAS
>>263 今度は反則なしで。python

import requests as r

url = 'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt'
g= r.get( url )

print('読んだサイズは',len(g.text) )

# 読んだサイズは 2495
276
(1): 2019/02/20(水)17:58 ID:t1mcuuOB(1)調 AAS
>>258
Pharo 7
'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt' asUrl retrieveContents
277: 2019/02/20(水)18:10 ID:3A0CDvTh(2/2)調 AAS
>>276 ありがとう。 そんな言語も出てきてたんだ。 でも普及は難しいのかも。
278: 2019/02/20(水)23:51 ID:MUUM+ThN(1)調 AAS
>>230 pike
https://ideone.com/VZzxoA
279
(13): 2019/02/21(木)18:54 ID:1axkeZoV(1/2)調 AAS
お題:リスト等を", "で結合して表示せよ。ただし最後は" and "で結合する。
https://ideone.com/pVuO7T
280: 2019/02/21(木)19:06 ID:TUYpSwcQ(1)調 AAS
>>279 JavaScript
const arr = ['apple', 'banana', 'orange', 'mango'];
const last = ' and ' + arr.pop();
console.log(arr.join`, ` + last);
//=> apple, banana, orange and mango
281: 2019/02/21(木)19:17 ID:eUc7EqKm(1/2)調 AAS
>>279 python

l = [ 1,2,3,4,5]

print( *l[0:-1] ,'and' , l[-1])

# 1 2 3 4 and 5
282
(1): 2019/02/21(木)19:27 ID:2zdYL4u2(1/5)調 AAS
>>279
Haskell

main = putStrLn.concat.concat $ [map addCanma (init lst),["and,"],[last lst]]

addCanma s = s ++ ","

lst = ["apple","banana","orange","mango"]

output:
apple,banana,orange,and,mango
283
(2): 2019/02/21(木)19:31 ID:lqQG1Hmj(1/4)調 AAS
題意は
list = ["red","green","black","white"]
print(", ".join(list[:-1]),"and",list[-1])
# red, green, black and white
だろ
284: 2019/02/21(木)19:43 ID:YnrfI9YG(1)調 AAS
そこそこ優秀なのに肝心なところでいい加減だから試験に落ちるタイプだな
285: 2019/02/21(木)19:51 ID:2zdYL4u2(2/5)調 AAS
>>283
あ、そうか。
不恰好だけどこれで一応対応。

(putStrLn.concat.concat) [init $ map addCanma $ init lst,[last $ init lst],[" and "],[last lst]]

スマートな解答も考えてみるよ。
286
(1): 2019/02/21(木)20:16 ID:eUc7EqKm(2/2)調 AAS
>>283 ごめん、俺もカンマが抜けてた。
数字の場合の模範解答をよろしく。
287
(1): 2019/02/21(木)20:20 ID:2zdYL4u2(3/5)調 AAS
スマートかは兎も角、一応マシな形に。
空リストや要素数1にも対応。

Haskell

main = putStrLn $ last2 lst

last2::[String] -> String
last2 [] = []
last2 [x] = x
last2 [x,y] = concat [x," and ", y]
last2 (x:xs) = x ++ "," ++ last2 xs

lst = map show [0..5]

output:
0,1,2,3,4 and 5
288: 2019/02/21(木)20:59 ID:lqQG1Hmj(2/4)調 AAS
>>286
list = [str(x) for x in range(1,5)]
とか
map(lambda x : str(x), list)
でもおk

要素数が1個以下の場合はifで分離するだけなので略
289
(1): 2019/02/21(木)21:09 ID:y3+CYNZ6(1)調 AAS
>>279 Common Lisp
(format t "~{~@{~A~^~#,1^, ~}~^ and ~A~}~%" (list 1 2 3 4))
https://ideone.com/6DcwO9
290: 2019/02/21(木)21:21 ID:lqQG1Hmj(3/4)調 AAS
intとstrが混在してる場合でも大丈夫で入力数が1以下ならそのまま返すワンライナー

python
print("".join(reversed(" ,".join(reversed([str(x) for x in list])).replace(",","dna ",1))))

JS+正規表現
console.log(list.join(", ").replace(/(.*),(.*?)+/,"$1 and $2"))

冷静に考えるとこの正規表現を使い回せばどの言語でもワンライナーなのでは
291
(1): さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/21(木)21:21 ID:PQQkN+7n(1/2)調 AAS
ラティス、再び。

お題: >>99 の場合分けのラティス構造を使って、複数の入力文字列について、共通部分をまとめ、1つの文字列に凝縮せよ。

(例)
ああい
ああ
あう
→あ{{あ{い/}}/う}
292
(1): 2019/02/21(木)21:30 ID:lqQG1Hmj(4/4)調 AAS
よく考えたらreversedなんか使わんでも
print((" ,".join([str(x) for x in list][::-1]).replace(",","dna ",1))[::-1])
でいけるか。join削減できるし
293: さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/21(木)21:32 ID:3Jj6vI7v(1/2)調 AAS
出力文字列の長さは最短でなければならない。
場合分けの順序は問わないが、場合分けの項目について、ソートすることが望ましい。
294: さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/21(木)21:37 ID:3Jj6vI7v(2/2)調 AAS
一番外側の { } は省略可能。
共通部分がないときは、/で区切って出力せよ。
295: 279 2019/02/21(木)21:39 ID:1axkeZoV(2/2)調 AAS
>>279 pike
https://ideone.com/0nn6Wt
296: さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/21(木)21:55 ID:PQQkN+7n(2/2)調 AAS
このラティス構造っていうの、言語学ではよく使うらしいが、専門じゃないからよくわからない。
297
(1): 2019/02/21(木)22:55 ID:2zdYL4u2(4/5)調 AAS
>>279
>>292

Haskellでもワンライナー出来たけど、読みやすいとは思えない。(横長だし)
発想としては(要素数2以上なら)最後以外の要素(文字列)の頭に','追加して、全部結合して(大きな文字列にして)最後に頭の','を省く。

main = putStrLn.tail.concat $ if length lst < 2 then lst else [(concat.(map (\x -> ',':x)).init) lst," and ",last lst]

lst = map show [0..5]

個人的に >>287 の方が発想も読みやすさも好みの書き方。
(読み難くなるなら関数分ける派)

pythonのはワンライナーでも比較的読みやすくて、ちょっと羨ましい。
298: 2019/02/21(木)22:59 ID:2zdYL4u2(5/5)調 AAS
>>297
弄ってるうちに要素一以下だとバグ出てた。

正しいコードはこっち。

putStrLn.concat $ if length lst < 2 then lst else [(tail.concat.(map (\x -> ',':x)).init) lst," and ",last lst]
299
(1): 2019/02/21(木)23:36 ID:un6uIa3F(1)調 AAS
>>282 Perl5

sub f {
 my $a = shift;
 @_ ? (@_ > 1 ? "$a, " : "$a and ").f(@_) : $a
}

use feature say;

say f(qw[red green black white]);
say f(qw[apple banana]);
say f(qw[one]);

実行結果
~ $ perl 13_279_and.pl
red, green, black and white
apple and banana
one
300
(1): 2019/02/22(金)00:04 ID:EatRhjER(1/2)調 AAS
>>279 Squeak/Pharo Smalltalk

(0 to: 3) asCommaStringAnd "=> '0, 1, 2 and 3' "
301: 2019/02/22(金)00:07 ID:wSgiM5bY(1/2)調 AAS
>>299
アンカー間違えた >>279 宛だった…orz

>>279 もう一丁 Perl5

sub g {
 my $z = ' and '.pop @_ if @_ > 1;
 join(', ', @_).$z;
}

use feature say;
say g(qw[red green black white]);
say g(qw[apple banana]);
say g(qw[one]);

実行結果
~ $ perl 13_279_and_2.pl
red, green, black and white
apple and banana
one
302
(2): 2019/02/22(金)00:28 ID:9PVAJM4v(1/3)調 AAS
>>300
そういう関数が既にあるの?
303: 2019/02/22(金)00:31 ID:wSgiM5bY(2/2)調 AAS
>>302
ググルとあるみたいよ。
組み込みMethodを山のように持っていそう
304: 2019/02/22(金)00:49 ID:9PVAJM4v(2/3)調 AAS
ほえー
305
(1): 2019/02/22(金)06:09 ID:HhIJRo4K(1/2)調 AAS
>>279
Smalltalk (Pharo 7)

#('apple' 'banana' 'orange' 'mango') asCommaStringAnd
==> 'apple, banana, orange and mango'

#('apple' 'banana') asCommaStringAnd
==> 'apple and banana'

#('apple') asCommaStringAnd
==> 'apple'
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
1-
あと 670 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.035s