プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part14
http://mevius.5ch.net/test/read.cgi/tech/1558168409/
探検
プログラミングのお題スレ Part15
レス数が1000を超えています。これ以上書き込みはできません。
2019/07/28(日) 19:39:57.54ID:832c/ukY
2019/07/28(日) 21:03:19.25ID:KnbJf+WN
宿題、チューリングの泥沼、条件不足等回避のため
出題者は自分で回答可能か確認してからお題を出すこと
出題者は自分で回答可能か確認してからお題を出すこと
2019/07/28(日) 21:08:20.48ID:OTB4c+BP
※QZは書き込み禁止
2019/07/28(日) 21:32:12.69ID:MO+jaDzY
お題
とあるゲームでは、10面ダイスによってスコアを次のように定める
1. x個のダイスを全部振る
2. 振ったダイスのうち、最大の出目をスコアとする
3. 出目がc以上のダイスが存在するなら、その全てのダイスを使って同じ試行を行い、スコアに加算する
例えばc=7の時、2個のダイスの結果が(10,7)→(8,3)→(2)ならスコアは10+8+2=20となる
最初に振るダイスの個数Nとc(≧2)が分かっている時、スコアの期待値を求めよ
とあるゲームでは、10面ダイスによってスコアを次のように定める
1. x個のダイスを全部振る
2. 振ったダイスのうち、最大の出目をスコアとする
3. 出目がc以上のダイスが存在するなら、その全てのダイスを使って同じ試行を行い、スコアに加算する
例えばc=7の時、2個のダイスの結果が(10,7)→(8,3)→(2)ならスコアは10+8+2=20となる
最初に振るダイスの個数Nとc(≧2)が分かっている時、スコアの期待値を求めよ
2019/07/29(月) 11:14:17.89ID:3vvajVS9
2019/07/29(月) 11:34:20.96ID:3vvajVS9
2019/07/29(月) 11:49:50.47ID:3vvajVS9
サイコロの偏りをもっと明確にしたいなら、乱数エンジンを複数持つか、ランダムデバイスそのもので実行する。
ランダムデバイスは遅いことになってるのでMTに投げるんだけど。
ランダムデバイスは遅いことになってるのでMTに投げるんだけど。
2019/07/29(月) 11:55:28.48ID:3vvajVS9
一様乱数のサイコロは、現実では職人が作ったサイコロですなあ。
9蟻人間 ◆T6xkBnTXz7B0
2019/07/30(火) 00:00:42.86ID:NJpsA13e お題: 炭素原子C, 酸素原子O, 水素原子Hという三種類の原子をそれぞれいくつか組み合わせて、非イオンの分子を作る。C, O, Hの結合の手の本数は、それぞれ四本、二本、一本である。
ゼロ以上の整数p,q,rが与えられ、Cがp個、Oがq個、Hがr個あると仮定するとき、原子を余らせず、また、結合の手を余らせずに一つの連結された分子を作りたい。
C, O, Hをこの順でp+q+r個、並べたリストLについて、m番目の原子L[m]とn番目の原子L[n]の結合の個数をA[m,n]と書くとき、A[m,n]によってなる行列Aを一つ求めなさい。不可能な場合は「None.」と表示しなさい。
例)
(p, q, r)=(0, 2, 0) → A=((0, 2), (2, 0)).
(p, q, r)=(1, 2, 0) → A=((0, 2, 2), (2, 0, 0), (2, 0, 0)).
(p, q, r)=(0, 1, 2) → A=((0, 1, 1), (1, 0, 0), (1, 0, 0)).
ゼロ以上の整数p,q,rが与えられ、Cがp個、Oがq個、Hがr個あると仮定するとき、原子を余らせず、また、結合の手を余らせずに一つの連結された分子を作りたい。
C, O, Hをこの順でp+q+r個、並べたリストLについて、m番目の原子L[m]とn番目の原子L[n]の結合の個数をA[m,n]と書くとき、A[m,n]によってなる行列Aを一つ求めなさい。不可能な場合は「None.」と表示しなさい。
例)
(p, q, r)=(0, 2, 0) → A=((0, 2), (2, 0)).
(p, q, r)=(1, 2, 0) → A=((0, 2, 2), (2, 0, 0), (2, 0, 0)).
(p, q, r)=(0, 1, 2) → A=((0, 1, 1), (1, 0, 0), (1, 0, 0)).
10デフォルトの名無しさん
2019/07/30(火) 03:21:18.39ID:NEOgIkE0 問題がわかりづらい。
2019/07/30(火) 06:42:15.48ID:x+cPGemS
出題者は自分で解けることを確認してからお題にしてるのかね?
自明でない不可能な場合の例とか出してこないし怪しいもんだ
自明でない不可能な場合の例とか出してこないし怪しいもんだ
2019/07/30(火) 10:22:50.80ID:xUDKdiN7
慣れない言語の勉強に使うのに丁度いいね
出題者が答えも貼っといてくれるとありがたい(´・ω・`)
出題者が答えも貼っといてくれるとありがたい(´・ω・`)
13デフォルトの名無しさん
2019/07/30(火) 16:13:07.32ID:YUdTZrG6 良いプログラムは良い数式がないと作れないのでこのスレは過疎化する。
2019/07/30(火) 16:39:56.09ID:qFxGgTrm
久々にこの板きたけど、宿題スレってなくなったんだね
15蟻人間 ◆T6xkBnTXz7B0
2019/07/30(火) 16:51:52.79ID:gia580F5 解空間は、サイズ(p+q+r)×(p+q+r)の整数行列の集合になる。
結合の手の個数は有限だから、解行列の成分は上限がある。
よって行列の各成分についてしらみつぶし探索が可能。
自分自身とは結合しないので、A[k,k]=0(つまり、行列の対角成分はゼロ)。
ある行の和は、行番号に対応する原子の結合の手の個数になる。
ある列の和は、列番号に対応する原子の結合の手の個数になる。
連結条件のチェックが必要。
結合の手の個数は有限だから、解行列の成分は上限がある。
よって行列の各成分についてしらみつぶし探索が可能。
自分自身とは結合しないので、A[k,k]=0(つまり、行列の対角成分はゼロ)。
ある行の和は、行番号に対応する原子の結合の手の個数になる。
ある列の和は、列番号に対応する原子の結合の手の個数になる。
連結条件のチェックが必要。
2019/07/30(火) 17:04:44.75ID:RYwsY7rK
お題: xのn次式を簡潔に表現できる関数を書け(rationalじゃなくてもOK)
a+bx+cx^2+dx^3+...
を
f x a b c d ...
のように表現する
(可変引数を処理する)
例えば
(defun f (x &rest as) (reduce #'+ (loop for a in as for i from 0 collect (* a (expt x i)))))
(loop for x from -5 to 5 do (print (f x 0 -1 0 1/3)))
-110/3
-52/3
-6
-2/3
2/3
0
-2/3
2/3
6
52/3
110/3
a+bx+cx^2+dx^3+...
を
f x a b c d ...
のように表現する
(可変引数を処理する)
例えば
(defun f (x &rest as) (reduce #'+ (loop for a in as for i from 0 collect (* a (expt x i)))))
(loop for x from -5 to 5 do (print (f x 0 -1 0 1/3)))
-110/3
-52/3
-6
-2/3
2/3
0
-2/3
2/3
6
52/3
110/3
2019/07/30(火) 17:10:40.80ID:CNgKzCU7
>>14
基地外粘着uyによって潰された
基地外粘着uyによって潰された
2019/07/30(火) 19:44:50.09ID:RfvVlMN8
>>13
良い数式が立てられないのでモンテカルロに酔っているオレ・・・。
良い数式が立てられないのでモンテカルロに酔っているオレ・・・。
>>14
存在することはするのですが、誰も近寄らなくなりました、キチガイが一匹しつこく居候しているので
存在することはするのですが、誰も近寄らなくなりました、キチガイが一匹しつこく居候しているので
2019/07/30(火) 21:52:06.20ID:WkS1m6T1
>>20
つ 鏡
つ 鏡
2019/07/30(火) 23:15:45.71ID:1jiiGCYP
>>21
草生える
草生える
2019/07/30(火) 23:24:02.31ID:2GPXM96o
お題: 1 + 1 を計算させて 3 と出力させなさい
2019/07/30(火) 23:34:18.81ID:77FpHlNC
2019/07/31(水) 00:12:45.83ID:w173sz60
26デフォルトの名無しさん
2019/07/31(水) 04:39:05.16ID:BcGPMjSP2019/07/31(水) 05:06:41.43ID:B/3ESziM
>>23 ruby
class Fixnum
alias :add :+
def +(val)
if self == 1 && val == 1
puts 3
2
else
self.add(val)
end
end
end
1 + 1 #=> "3\n"
1 + 1 + 1 #=> "3\n"
1 + 1 + 1 + 1 #=> "3\n"
1 + 1 - 1 + 1 #=> "3\n3\n"
class Fixnum
alias :add :+
def +(val)
if self == 1 && val == 1
puts 3
2
else
self.add(val)
end
end
end
1 + 1 #=> "3\n"
1 + 1 + 1 #=> "3\n"
1 + 1 + 1 + 1 #=> "3\n"
1 + 1 - 1 + 1 #=> "3\n3\n"
2019/07/31(水) 09:55:03.07ID:w173sz60
2019/07/31(水) 14:18:08.83ID:6BPSvdm1
お題、東大入試
a^2 - a が、10,000 で割り切れるような奇数a を求めよ。
ただし、3 <= a <= 9,999
ヒント
a^2 - a = a(a - 1) で、aは奇数、a-1 は偶数。
10,000 = 10^4 = 2^4 * 5^4
答え、625
東京大【整数マスターに俺はなる!#31】
https://www.youtube.com/watch?v=-LdnNZVftmw
a^2 - a が、10,000 で割り切れるような奇数a を求めよ。
ただし、3 <= a <= 9,999
ヒント
a^2 - a = a(a - 1) で、aは奇数、a-1 は偶数。
10,000 = 10^4 = 2^4 * 5^4
答え、625
東京大【整数マスターに俺はなる!#31】
https://www.youtube.com/watch?v=-LdnNZVftmw
2019/07/31(水) 14:46:10.23ID:w173sz60
>>29
common lisp
(loop for n from 3 to 10000 when (and (equal (mod n 2) 1) (equal 0 (mod (- (expt n 2) n) 10000))) collect n)
(625)
common lisp
(loop for n from 3 to 10000 when (and (equal (mod n 2) 1) (equal 0 (mod (- (expt n 2) n) 10000))) collect n)
(625)
31デフォルトの名無しさん
2019/07/31(水) 15:57:49.04ID:oxQy3lj+ ・女体限定で、3次元の写真から3Dポリゴンモデルデータを自動作成
・そのデータから胴体部の着衣部分を、裸モデルに修正
・水着でついた脇乳の段差も修正
・元写真の地肌色を使い、女体テンプレのテクスチャを作成
・完成したモデルから胴体部だけ精密レンダリング
・元の写真に貼り付けて完成
・そのデータから胴体部の着衣部分を、裸モデルに修正
・水着でついた脇乳の段差も修正
・元写真の地肌色を使い、女体テンプレのテクスチャを作成
・完成したモデルから胴体部だけ精密レンダリング
・元の写真に貼り付けて完成
2019/07/31(水) 17:25:11.51ID:6BPSvdm1
プログラミングのお題スレ Part14
https://mevius.5ch.net/test/read.cgi/tech/1558168409/981-986
漏れは、前スレの981 ではないですが、この問題の応用で、
括弧のネストの深さの最大値を求めよ
括弧の対応が取れていない場合は、-1 を出力せよ。
2種類の括弧が順序通りに、閉じていないものも、-1 です
ヒント : stack を使うと良いかも
"" => 0
"( )" => 1
"{ ( { ( ) } ( ) ) } ( )" => 4
"} {" => -1
"( { ) }" => -1
https://mevius.5ch.net/test/read.cgi/tech/1558168409/981-986
漏れは、前スレの981 ではないですが、この問題の応用で、
括弧のネストの深さの最大値を求めよ
括弧の対応が取れていない場合は、-1 を出力せよ。
2種類の括弧が順序通りに、閉じていないものも、-1 です
ヒント : stack を使うと良いかも
"" => 0
"( )" => 1
"{ ( { ( ) } ( ) ) } ( )" => 4
"} {" => -1
"( { ) }" => -1
2019/07/31(水) 20:22:09.77ID:AESVjm16
自分でスタックするか再起にして自動で積ませるか、といったところか。
2019/07/31(水) 21:44:23.62ID:CaRsLsI2
2019/07/31(水) 22:14:16.43ID:w173sz60
2019/07/31(水) 22:19:24.27ID:w173sz60
ideone バグっているのか?
STDIN の1行目空だと
ちゃんと標準入力としてプログラムに伝わっているけど
リンク先の stdin 枠の中だと省略されているように見える
stdout の 0 はその空を受け取ったもの
STDIN の1行目空だと
ちゃんと標準入力としてプログラムに伝わっているけど
リンク先の stdin 枠の中だと省略されているように見える
stdout の 0 はその空を受け取ったもの
2019/07/31(水) 22:42:26.48ID:w173sz60
twitterやっていたようなので
そこにバグフィックス要請とテストケース画像貼っておいた
たぶんそのうち直るでしょう
そこにバグフィックス要請とテストケース画像貼っておいた
たぶんそのうち直るでしょう
2019/07/31(水) 23:32:10.18ID:M5c7ILzZ
問題
n桁のヒットアンドブローのソルバーを作る。
n桁のヒットアンドブローのソルバーを作る。
39デフォルトの名無しさん
2019/07/31(水) 23:34:51.48ID:BcGPMjSP 君の言っていることの意味がよくわからない。
2019/08/01(木) 00:15:32.73ID:i4UPQl8k
>>37
GJ
GJ
2019/08/01(木) 15:40:09.21ID:eeSbVWum
2019/08/01(木) 15:47:29.97ID:/tDwAGeP
年収n円の人が生活費と交遊費2種類だけで1年間の収入のすべてを消費するとして
税率がt1からt2に上がった時
税抜き価格ベースでの生活費が変動しないものと考えると
税抜き価格ベースでの交遊費の減少額はいくらになるか?
(端数は切り上げとする)
ex)
年収n=5,000,000
税率t1=8%
税率t2=10%
税抜き価格ベースでの生活費a
税抜き価格ベースでの交遊費x, y
5000000 = ( a + x ) * 1.08
5000000 = ( a + y ) * 1.10
上記の方程式を解いて
x-y ≒ 84,176
税率がt1からt2に上がった時
税抜き価格ベースでの生活費が変動しないものと考えると
税抜き価格ベースでの交遊費の減少額はいくらになるか?
(端数は切り上げとする)
ex)
年収n=5,000,000
税率t1=8%
税率t2=10%
税抜き価格ベースでの生活費a
税抜き価格ベースでの交遊費x, y
5000000 = ( a + x ) * 1.08
5000000 = ( a + y ) * 1.10
上記の方程式を解いて
x-y ≒ 84,176
2019/08/01(木) 16:10:15.37ID:WaJjQk0q
2019/08/01(木) 16:16:06.40ID:WaJjQk0q
切り上げか
Ceiling[ Simplify[ x-y, {5000000 ==(a+x)*1.08 == (a+y)*1.1} ] ]
84176
Ceiling[ Simplify[ x-y, {5000000 ==(a+x)*1.08 == (a+y)*1.1} ] ]
84176
2019/08/01(木) 16:17:25.45ID:9Ke7npq5
何も考えずにceiling(n/1.08-n/1.1)でいいんとちゃうけ?
46デフォルトの名無しさん
2019/08/01(木) 19:07:52.51ID:CMxA9z9p >>32 Ruby
f = -> str {s = +str.delete(?\ ); (0..).each{|i| s.gsub!(/{}|\(\)/, '') || (break s.size.zero? ? i : -1)}}
['', '( )', '{ ( { ( ) } ( ) ) } ( )', '} {', '( { ) }'].each{|e| puts '%p => %d' % [e, f[e]]}
# =>
"" => 0
"( )" => 1
"{ ( { ( ) } ( ) ) } ( )" => 4
"} {" => -1
"( { ) }" => -1
f = -> str {s = +str.delete(?\ ); (0..).each{|i| s.gsub!(/{}|\(\)/, '') || (break s.size.zero? ? i : -1)}}
['', '( )', '{ ( { ( ) } ( ) ) } ( )', '} {', '( { ) }'].each{|e| puts '%p => %d' % [e, f[e]]}
# =>
"" => 0
"( )" => 1
"{ ( { ( ) } ( ) ) } ( )" => 4
"} {" => -1
"( { ) }" => -1
2019/08/01(木) 21:02:36.17ID:9Ke7npq5
>>45
ちょっと考えたらceiling(n/59.4)だったw
ちょっと考えたらceiling(n/59.4)だったw
2019/08/02(金) 20:14:36.58ID:fXsI78QL
お題: 数字が与えられるので、その数字を元の数より大きくなるように再構築せよ
大きくできなければ元の数字をそのまま出力せよ
例:
in < 123
out > 231, 213, 321, 312
in < 921
out > 921
大きくできなければ元の数字をそのまま出力せよ
例:
in < 123
out > 231, 213, 321, 312
in < 921
out > 921
2019/08/02(金) 20:54:30.15ID:Awh9QXRy
123を入力したときに132が出力されないのはなぜ?
2019/08/02(金) 21:09:12.36ID:ec2C26mu
パーミュテーション作って終わりじゃあないのコレ
2019/08/02(金) 21:52:24.70ID:TUgs2HTj
>>49
ミスだよぉ!
ミスだよぉ!
52デフォルトの名無しさん
2019/08/02(金) 22:45:44.46ID:T1FFAKuC そんなんばっかだなお前
2019/08/03(土) 01:06:14.19ID:0ts56itm
2019/08/03(土) 10:23:36.04ID:t/Tc4Qxr
https://ideone.com/pgG7pT
from itertools import permutations
#string = "123"
string = "5672391"
n = int(string)
print filter(lambda m: m>n, map(lambda x: int("".join(x)), list(permutations(string, len(string)))))
from itertools import permutations
#string = "123"
string = "5672391"
n = int(string)
print filter(lambda m: m>n, map(lambda x: int("".join(x)), list(permutations(string, len(string)))))
2019/08/03(土) 10:27:27.22ID:9AEx1UEu
なんて早いんだ
2019/08/03(土) 11:19:47.14ID:4CYzcJxv
「大きくできなければ元の数字をそのまま出力せよ」という条件が
ことごとく無視されててワロタ
あと、「133」みたいに同じ数字が複数含まれる場合はどうなるべきなんだろう
ことごとく無視されててワロタ
あと、「133」みたいに同じ数字が複数含まれる場合はどうなるべきなんだろう
2019/08/03(土) 11:39:39.93ID:xpWLAw2C
>>48 Perl5
sub next_permutation {
defined $_[1] and
(next_permutation(@_[1..$#_]) or
($_[0] lt $_[1]) and
do {
for (1..$#_)
{$_[0] lt $_[$_] ? $i = $_ : last}
@_[0, $i] = @_[$i, 0];
@_[1..$#_] = reverse @_[1..$#_];
1 })
}
#$v = '123';
$v = '5672391';
@a = sort split '', $v;
do {
$n = join '', @a;
print "$n " if $n > $v;
} while next_permutation @a;
実行結果
https://ideone.com/qeSGDm
CPANなどにあるPermutation計算モジュールを使用しても良いけど、
言語処理系に標準で含まれるモジュールではなく別途インストールが必要なので、
昔書いたnext_permutation iteratorを使ってみた
sub next_permutation {
defined $_[1] and
(next_permutation(@_[1..$#_]) or
($_[0] lt $_[1]) and
do {
for (1..$#_)
{$_[0] lt $_[$_] ? $i = $_ : last}
@_[0, $i] = @_[$i, 0];
@_[1..$#_] = reverse @_[1..$#_];
1 })
}
#$v = '123';
$v = '5672391';
@a = sort split '', $v;
do {
$n = join '', @a;
print "$n " if $n > $v;
} while next_permutation @a;
実行結果
https://ideone.com/qeSGDm
CPANなどにあるPermutation計算モジュールを使用しても良いけど、
言語処理系に標準で含まれるモジュールではなく別途インストールが必要なので、
昔書いたnext_permutation iteratorを使ってみた
2019/08/03(土) 11:43:50.21ID:xpWLAw2C
>>57 ごめんなさい
print "$n " if $n > $v;
↓
print "$n " if $n >= $v;
じゃないと「大きくできなければ元の数字をそのまま出力せよ」を満たさなかった…orz
print "$n " if $n > $v;
↓
print "$n " if $n >= $v;
じゃないと「大きくできなければ元の数字をそのまま出力せよ」を満たさなかった…orz
2019/08/03(土) 11:49:41.56ID:xpWLAw2C
2019/08/03(土) 12:09:48.13ID:xpWLAw2C
>>48 Perl5、iteratorじゃなくpermutationを列挙する方法で書いてみた。これなら題意に合うはず。
sub permu {
my ($l, $p, @r) = @_;
defined $p ? map {[$p, @$_]} permu([], @$l, @r) : ([])
,
@r ? permu([@$l, $p], @r) : ()
}
#$v = '123';
#$v = '321';
$v = '5672391';
@a = split '', $v;
@b = grep {$_ > $v} map{join('', @$_)} permu [], @a;
print (@b ? "@b" : $v);
実行結果
https://ideone.com/1Lft75
少しメモリを食ってるだろうけど0.04sで解けた
sub permu {
my ($l, $p, @r) = @_;
defined $p ? map {[$p, @$_]} permu([], @$l, @r) : ([])
,
@r ? permu([@$l, $p], @r) : ()
}
#$v = '123';
#$v = '321';
$v = '5672391';
@a = split '', $v;
@b = grep {$_ > $v} map{join('', @$_)} permu [], @a;
print (@b ? "@b" : $v);
実行結果
https://ideone.com/1Lft75
少しメモリを食ってるだろうけど0.04sで解けた
2019/08/03(土) 16:01:35.10ID:XF8eWPn5
>>48 Squeak/Pharo Smalltalk
| fn res |
fn := [:input |
(Array streamContents: [:ss |
input permutationsDo: [:perm | perm > input ifTrue: [ss nextPut: perm copy]]]
) ifEmpty: [input]
].
fn value: '123'. "=> #('132' '213' '231' '321' '312') "
fn value: '921'. "=> '921' "
{#ms -> [res := fn value: '5672391'] timeToRun. #size -> res size}. "=> {#ms->6 . #size->2438} "
| fn res |
fn := [:input |
(Array streamContents: [:ss |
input permutationsDo: [:perm | perm > input ifTrue: [ss nextPut: perm copy]]]
) ifEmpty: [input]
].
fn value: '123'. "=> #('132' '213' '231' '321' '312') "
fn value: '921'. "=> '921' "
{#ms -> [res := fn value: '5672391'] timeToRun. #size -> res size}. "=> {#ms->6 . #size->2438} "
2019/08/03(土) 19:53:41.57ID:0ts56itm
2019/08/04(日) 03:52:38.60ID:vnZdN6SP
2019/08/04(日) 04:17:02.39ID:vnZdN6SP
>>62
C++のnext_permutationは、辞書順で次に来る順列が返るので、
最初の並びにnext_permutationを繰り返し適用すれば題意を満たす数列が得られる。
あと、自前で桁分割するより他言語のように文字列を使った方が楽だと思う。
C++のnext_permutationは、辞書順で次に来る順列が返るので、
最初の並びにnext_permutationを繰り返し適用すれば題意を満たす数列が得られる。
あと、自前で桁分割するより他言語のように文字列を使った方が楽だと思う。
2019/08/04(日) 08:30:18.20ID:FnmDNXLj
>>48
@Mathematica
rebuildLargerN[n_]:=n//
IntegerDigits//
Permutations//
Map[FromDigits,#]&//
Select[#,#>n&]&//
If[#!={},#,{n}]&;
In[1] := rebuildLargerN[123]
Out[1] = {132, 213, 231, 312, 321}
In[2] := rebuildLargerN[921]
Out[2] = {921}
@Mathematica
rebuildLargerN[n_]:=n//
IntegerDigits//
Permutations//
Map[FromDigits,#]&//
Select[#,#>n&]&//
If[#!={},#,{n}]&;
In[1] := rebuildLargerN[123]
Out[1] = {132, 213, 231, 312, 321}
In[2] := rebuildLargerN[921]
Out[2] = {921}
2019/08/04(日) 11:42:59.33ID:1+0Vj0jh
2019/08/04(日) 13:27:01.79ID:FYuOH6vI
https://ideone.com/mBo1rR
C++.
>>63のダブって表示はならないですね。
文字列だと、自分はいいけど、数字に限定するのが面倒なので、大きな数で処理してます。
文字を許容するんであればお題で書いておけばそのようになるんじゃないですかね??
C++.
>>63のダブって表示はならないですね。
文字列だと、自分はいいけど、数字に限定するのが面倒なので、大きな数で処理してます。
文字を許容するんであればお題で書いておけばそのようになるんじゃないですかね??
2019/08/04(日) 13:29:31.62ID:FYuOH6vI
あ、そうだった。文字列だと自分より大きいを表現するのがめんどくさいのでした。
2019/08/05(月) 21:32:05.80ID:OFOHGnJp
2019/08/05(月) 22:51:54.50ID:AzW+f4x5
>>48 C++
https://ideone.com/6HQBYE
>>64で説明したかった内容をコードにしてみた
なお、pythonとc++のpermutationは、同じ値が含まれる時の動作が異なる
https://stackoverflow.com/questions/6534430/why-does-pythons-itertools-permutations-contain-duplicates-when-the-original
https://ideone.com/6HQBYE
>>64で説明したかった内容をコードにしてみた
なお、pythonとc++のpermutationは、同じ値が含まれる時の動作が異なる
https://stackoverflow.com/questions/6534430/why-does-pythons-itertools-permutations-contain-duplicates-when-the-original
2019/08/06(火) 14:56:22.80ID:1YPxJa8a
お題@閑話休題。
https://ja.wikipedia.org/wiki/AKS素数判定法
AKSの実装。Prime is in P.
自分は挫折しました。数学解らない。
残骸:https://ideone.com/9e7Tyn
https://ja.wikipedia.org/wiki/AKS素数判定法
AKSの実装。Prime is in P.
自分は挫折しました。数学解らない。
残骸:https://ideone.com/9e7Tyn
2019/08/06(火) 14:57:44.83ID:1YPxJa8a
2019/08/06(火) 18:46:19.50ID:/2t+ALeN
お題: スターリンソートを実装せよ
2019/08/06(火) 19:06:50.12ID:Uq1zh0Vl
>>73
seq 300|sort -R | perl -ne ' if ($. == 1){print ; $hold = $_} elsif ($_ > $hold) { print ; $hold = $_}'
140
145
231
246
248
270
272
281
298
299
300
seq 300|sort -R | perl -ne ' if ($. == 1){print ; $hold = $_} elsif ($_ > $hold) { print ; $hold = $_}'
140
145
231
246
248
270
272
281
298
299
300
2019/08/06(火) 20:18:34.06ID:1YPxJa8a
>>73
要素粛清しながら見た目がそろっているというギャグかいな。
要素粛清しながら見た目がそろっているというギャグかいな。
2019/08/06(火) 20:54:47.97ID:1YPxJa8a
2019/08/07(水) 15:33:52.56ID:ts1kCtnm
>>73 Squeak/Pharo Smalltalk
| fn |
fn := [:array |
| memo |
memo := array first.
array reject: [:x | x < memo flag: (memo := x max: memo)]
].
fn value: (1 to: 300) asArray shuffled. "=> #(65 116 195 235 276 280 293 299 300) "
| fn |
fn := [:array |
| memo |
memo := array first.
array reject: [:x | x < memo flag: (memo := x max: memo)]
].
fn value: (1 to: 300) asArray shuffled. "=> #(65 116 195 235 276 280 293 299 300) "
2019/08/08(木) 00:35:30.37ID:X/CTiqlR
>>73
しばらくお題がないとおちつかないな
seq 300|sort -R | perl -ne ' if ($. == 1 or $_ > $hold) { print ; $hold = $_}'
しばらくお題がないとおちつかないな
seq 300|sort -R | perl -ne ' if ($. == 1 or $_ > $hold) { print ; $hold = $_}'
2019/08/08(木) 10:41:16.59ID:Q6oNbeov
>>73
ss = -> a {a.reduce([]){|r, e| r.first.nil? ? [e] : r.last < e ? r + [e] : r}}
p ss[[3,1,4,1,5,9,26,53,58,97,93,238]] # =>
[3, 4, 5, 9, 26, 53, 58, 97, 238]
ss = -> a {a.reduce([]){|r, e| r.first.nil? ? [e] : r.last < e ? r + [e] : r}}
p ss[[3,1,4,1,5,9,26,53,58,97,93,238]] # =>
[3, 4, 5, 9, 26, 53, 58, 97, 238]
2019/08/09(金) 00:37:57.26ID:F1quTbHl
>>73 Perl5
use List::Util 'max';
@a = qw{3 1 4 1 5 9 26 53 58 97 93 238};
@b = grep {$n < $_ and $n = max($n, $_)} @a;
print "@b\n";
実行結果
~ $ perl 15_73.pl
3 4 5 9 26 53 58 97 238
use List::Util 'max';
@a = qw{3 1 4 1 5 9 26 53 58 97 93 238};
@b = grep {$n < $_ and $n = max($n, $_)} @a;
print "@b\n";
実行結果
~ $ perl 15_73.pl
3 4 5 9 26 53 58 97 238
81蟻人間 ◆T6xkBnTXz7B0
2019/08/09(金) 00:53:52.15ID:ZZ2ybqZz お題: 太陽系の各天体の位置を物理シミュレーションし、64日後の地球の位置を求めよ。
82蟻人間 ◆T6xkBnTXz7B0
2019/08/09(金) 01:17:32.06ID:JH0KcGUq 俺たちって計算能力でコペルニクスを超えられると思う? NASAのデータがあるから昔よりも楽だと思うけど。
2019/08/09(金) 01:27:37.54ID:F1quTbHl
2019/08/09(金) 04:16:04.61ID:eE0IZ4mx
>>83
ちょっとおもしろい
ちょっとおもしろい
2019/08/09(金) 08:43:53.16ID:Pwzp9noT
>64
地球の位置といってもいろいろあります。
地球の赤道を天球上に投影した、「赤経、赤緯」、太陽の天球上の
通り道を天球上に投影した「黄経、黄緯」がありますし、それも、地球の中心を
原点とした、「地心赤経、赤緯」、「地心黄経、黄緯」および、観測地点を原点とした
「地表赤経、赤緯」、「地表黄経、黄緯」もありますので、どれにするかによって
計算式が違ってきます。
なお、JPLでは、太陽と月、および冥王星までの精密位置計算用のプログラムを
発表しています。
期間がながいものは、−4000(B.C.4001)〜4000(A.D.)まで、計算できるものが
あります。
計算用のデータと、テスト用のFortranプログラムも附属しています。
地球の位置といってもいろいろあります。
地球の赤道を天球上に投影した、「赤経、赤緯」、太陽の天球上の
通り道を天球上に投影した「黄経、黄緯」がありますし、それも、地球の中心を
原点とした、「地心赤経、赤緯」、「地心黄経、黄緯」および、観測地点を原点とした
「地表赤経、赤緯」、「地表黄経、黄緯」もありますので、どれにするかによって
計算式が違ってきます。
なお、JPLでは、太陽と月、および冥王星までの精密位置計算用のプログラムを
発表しています。
期間がながいものは、−4000(B.C.4001)〜4000(A.D.)まで、計算できるものが
あります。
計算用のデータと、テスト用のFortranプログラムも附属しています。
2019/08/09(金) 12:56:08.85ID:1/DU+veY
Perlって読みにくいんだな
{とか@とか$とか使いまくる言語ってマジ苦手
{とか@とか$とか使いまくる言語ってマジ苦手
87デフォルトの名無しさん
2019/08/09(金) 13:03:13.21ID:OfLBByV9 RubyとPHPにケンカ売ってんの?
2019/08/09(金) 13:05:45.59ID:weGJYw8v
grep 内のboolian から最後の , 1 を取り除いたら
最初の0を拾わない
何というカオス
最初の0を拾わない
何というカオス
2019/08/09(金) 13:27:04.59ID:F1quTbHl
@b = grep {$n < $_ and {$n = $_}} @a;
こうやりゃいいんだよ
こうやりゃいいんだよ
2019/08/09(金) 13:51:55.80ID:3hMObOjl
この方がいいだろ
@b = grep {$n < $_ and ($n = $_, 1)} @a;
@b = grep {$n < $_ and ($n = $_, 1)} @a;
2019/08/10(土) 22:54:55.68ID:wV6Kn1Zu
お題:
与えられた数列の要素の中で他と被っていない最小のものを求めよ
被っていない要素が存在しないときは-1を出力すること
例:
1,1,1,1,2,2,2,3,3,4 -> 4
1,2,3,4,5,5,4,3,2,1 -> -1
3,1,4,1,5,9,2,6,5,3,5 -> 2
与えられた数列の要素の中で他と被っていない最小のものを求めよ
被っていない要素が存在しないときは-1を出力すること
例:
1,1,1,1,2,2,2,3,3,4 -> 4
1,2,3,4,5,5,4,3,2,1 -> -1
3,1,4,1,5,9,2,6,5,3,5 -> 2
2019/08/11(日) 00:46:36.68ID:In4DYV8Y
>>91 Perl5
use feature say;
use List::Util min;
for ([1,1,1,1,2,2,2,3,3,4], [1,2,3,4,5,5,4,3,2,1], [3,1,4,1,5,9,2,6,5,3,5]) {
my %h;
$h{$_}++ for @$_;
@s = grep{1 == $h{$_}} keys %h;
$" = ',';
say "@$_ -> ", @s ? min @s : -1;
}
実行例
~ $ perl 15_91.pl
1,1,1,1,2,2,2,3,3,4 -> 4
1,2,3,4,5,5,4,3,2,1 -> -1
3,1,4,1,5,9,2,6,5,3,5 -> 2
use feature say;
use List::Util min;
for ([1,1,1,1,2,2,2,3,3,4], [1,2,3,4,5,5,4,3,2,1], [3,1,4,1,5,9,2,6,5,3,5]) {
my %h;
$h{$_}++ for @$_;
@s = grep{1 == $h{$_}} keys %h;
$" = ',';
say "@$_ -> ", @s ? min @s : -1;
}
実行例
~ $ perl 15_91.pl
1,1,1,1,2,2,2,3,3,4 -> 4
1,2,3,4,5,5,4,3,2,1 -> -1
3,1,4,1,5,9,2,6,5,3,5 -> 2
2019/08/11(日) 01:44:41.14ID:GTeyRs5o
2019/08/11(日) 06:08:19.60ID:0wbGlMwh
>>91 Ruby
f = -> a {a.sort.group_by{|e| a.count(e)}[1]&.min || -1}
[
[1,1,1,1,2,2,2,3,3,4],
[1,2,3,4,5,5,4,3,2,1],
[3,1,4,1,5,9,2,6,5,3,5]
].each{|a| puts '%p => %s' % [a, f[a]]} # =>
[1, 1, 1, 1, 2, 2, 2, 3, 3, 4] => 4
[1, 2, 3, 4, 5, 5, 4, 3, 2, 1] => -1
[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] => 2
f = -> a {a.sort.group_by{|e| a.count(e)}[1]&.min || -1}
[
[1,1,1,1,2,2,2,3,3,4],
[1,2,3,4,5,5,4,3,2,1],
[3,1,4,1,5,9,2,6,5,3,5]
].each{|a| puts '%p => %s' % [a, f[a]]} # =>
[1, 1, 1, 1, 2, 2, 2, 3, 3, 4] => 4
[1, 2, 3, 4, 5, 5, 4, 3, 2, 1] => -1
[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] => 2
2019/08/11(日) 06:11:31.27ID:0wbGlMwh
typo
f = -> a {a.uniq.group_by{|e| a.count(e)}[1]&.min || -1}
f = -> a {a.uniq.group_by{|e| a.count(e)}[1]&.min || -1}
2019/08/11(日) 12:01:23.99ID:tGfhCIDM
>>91 ruby
[ [1,1,1,1,2,2,2,3,3,4], [1,2,3,4,5,5,4,3,2,1], [3,1,4,1,5,9,2,6,5,3,5] ].each{|ar|
print ar.join(','), " -> "
while (m = ar.min) && ar.count( m ) != 1
ar.delete( m )
end
puts m || -1
}
1,1,1,1,2,2,2,3,3,4 -> 4
1,2,3,4,5,5,4,3,2,1 -> -1
3,1,4,1,5,9,2,6,5,3,5 -> 2
[ [1,1,1,1,2,2,2,3,3,4], [1,2,3,4,5,5,4,3,2,1], [3,1,4,1,5,9,2,6,5,3,5] ].each{|ar|
print ar.join(','), " -> "
while (m = ar.min) && ar.count( m ) != 1
ar.delete( m )
end
puts m || -1
}
1,1,1,1,2,2,2,3,3,4 -> 4
1,2,3,4,5,5,4,3,2,1 -> -1
3,1,4,1,5,9,2,6,5,3,5 -> 2
2019/08/11(日) 13:17:24.76ID:In4DYV8Y
>>91 Perl5 >>92 よりもう少しシンプルに
use List::Util min;
for ('1,1,1,1,2,2,2,3,3,4', '1,2,3,4,5,5,4,3,2,1', '3,1,4,1,5,9,2,6,5,3,5') {
my %h;
$h{$_}++ for split ',';
$s = min grep{1 == $h{$_}} keys %h;
$s //= -1;
print "$_ -> $s\n";
}
実行結果
~ $ perl 15_91.pl
1,1,1,1,2,2,2,3,3,4 -> 4
1,2,3,4,5,5,4,3,2,1 -> -1
3,1,4,1,5,9,2,6,5,3,5 -> 2
use List::Util min;
for ('1,1,1,1,2,2,2,3,3,4', '1,2,3,4,5,5,4,3,2,1', '3,1,4,1,5,9,2,6,5,3,5') {
my %h;
$h{$_}++ for split ',';
$s = min grep{1 == $h{$_}} keys %h;
$s //= -1;
print "$_ -> $s\n";
}
実行結果
~ $ perl 15_91.pl
1,1,1,1,2,2,2,3,3,4 -> 4
1,2,3,4,5,5,4,3,2,1 -> -1
3,1,4,1,5,9,2,6,5,3,5 -> 2
98蟻人間 ◆T6xkBnTXz7B0
2019/08/11(日) 13:23:49.66ID:NLZMdOh3 お題: 数独を素早く解くプログラム(ソルバー)。
99デフォルトの名無しさん
2019/08/11(日) 16:53:20.83ID:RYQKURZ1 昔々Cで数独解くやつ普通に作ったことあるけど普通に作っても人間の感覚では一瞬にして答えが出ちゃうんだよな。ほとんどEnterキー押したらすぐ出る感じ。
そしてこれといって他にアルゴリズムは思い浮かばない。(誰もが思い付くであろう再起でマスに入れられる数を順番に入れてく方式ね)。
これ以上に「素早く」やる方法なんてあるんだろうか?
そしてこれといって他にアルゴリズムは思い浮かばない。(誰もが思い付くであろう再起でマスに入れられる数を順番に入れてく方式ね)。
これ以上に「素早く」やる方法なんてあるんだろうか?
100デフォルトの名無しさん
2019/08/11(日) 16:59:48.87ID:z7uw92+V101デフォルトの名無しさん
2019/08/11(日) 17:06:50.80ID:z7uw92+V102デフォルトの名無しさん
2019/08/11(日) 17:17:47.99ID:z7uw92+V #include <map>
template<class Container>
std::int64_t MakeHoge(const Container& D) {
std::map < Container::value_type, std::uint64_t> M;
for (auto& o : D) {
M[o]++;
}
for (auto& o : M) {
if (o.second == 1) {
return o.first;
}
}
return -1;
}
詰めまくってみた。C++。
template<class Container>
std::int64_t MakeHoge(const Container& D) {
std::map < Container::value_type, std::uint64_t> M;
for (auto& o : D) {
M[o]++;
}
for (auto& o : M) {
if (o.second == 1) {
return o.first;
}
}
return -1;
}
詰めまくってみた。C++。
103デフォルトの名無しさん
2019/08/11(日) 17:20:29.72ID:z7uw92+V #include <map>
template<class Container>
std::intmax_t MakeHoge3(const Container& D) {
std::map < Container::value_type, std::uintmax_t> M;
for (auto& o : D) {
M[o]++;
}
for (auto& o : M) {
if (o.second == 1) {
return o.first;
}
}
return -1;
}
しつこいけど、これ以上は無理ってくらい詰めた。
template<class Container>
std::intmax_t MakeHoge3(const Container& D) {
std::map < Container::value_type, std::uintmax_t> M;
for (auto& o : D) {
M[o]++;
}
for (auto& o : M) {
if (o.second == 1) {
return o.first;
}
}
return -1;
}
しつこいけど、これ以上は無理ってくらい詰めた。
104デフォルトの名無しさん
2019/08/11(日) 17:25:40.33ID:z7uw92+V どうでもいいのですけど、MITライセンス。知ってますね。
105蟻人間 ◆T6xkBnTXz7B0
2019/08/11(日) 17:33:34.70ID:NLZMdOh3 名無しにライセンス
106デフォルトの名無しさん
2019/08/11(日) 17:43:12.84ID:z7uw92+V107デフォルトの名無しさん
2019/08/11(日) 18:40:15.26ID:2JPwQqrg prologのコード見せてよ
108蟻人間 ◆T6xkBnTXz7B0
2019/08/11(日) 18:56:28.74ID:NLZMdOh3 お題: 論文「数独パズルの難易度判定」(大阪工業大学)を読んで、数独の難易度を判定するプログラムを作れ。
110蟻人間 ◆T6xkBnTXz7B0
2019/08/11(日) 19:48:53.81ID:NLZMdOh3 論文無視かよ
111デフォルトの名無しさん
2019/08/11(日) 19:52:40.36ID:GTeyRs5o お題出す前にその論文を簡約してよ
112デフォルトの名無しさん
2019/08/12(月) 00:58:03.04ID:DPPVhuFK >>91 Pharo/Squeak Smalltalk
| fn |
fn := [:arr | (arr asBag sortedElements detect: [:kv | kv value = 1] ifNone: [-1 -> 0]) key].
fn value: #(1 1 1 1 2 2 2 3 3 4). "=> 4 "
fn value: #(1 2 3 4 5 5 4 3 2 1). "=> -1 "
fn value: #(3 1 4 1 5 9 2 6 5 3 5). "=> 2 "
| fn |
fn := [:arr | (arr asBag sortedElements detect: [:kv | kv value = 1] ifNone: [-1 -> 0]) key].
fn value: #(1 1 1 1 2 2 2 3 3 4). "=> 4 "
fn value: #(1 2 3 4 5 5 4 3 2 1). "=> -1 "
fn value: #(3 1 4 1 5 9 2 6 5 3 5). "=> 2 "
113デフォルトの名無しさん
2019/08/12(月) 05:25:28.42ID:+GFDKMmL114デフォルトの名無しさん
2019/08/12(月) 21:41:34.96ID:qMi+e5AX >>91 Perl5 >>97 もう少しスマートに
for ('1,1,1,1,2,2,2,3,3,4', '1,2,3,4,5,5,4,3,2,1', '3,1,4,1,5,9,2,6,5,3,5') {
my %h;
$h{$_}++ for eval;
($s) = sort grep{1 == $h{$_}} keys %h;
$s //= -1;
print "$_ -> $s\n";
}
実行結果
~ $ perl 15_91_3.pl
1,1,1,1,2,2,2,3,3,4 -> 4
1,2,3,4,5,5,4,3,2,1 -> -1
3,1,4,1,5,9,2,6,5,3,5 -> 2
for ('1,1,1,1,2,2,2,3,3,4', '1,2,3,4,5,5,4,3,2,1', '3,1,4,1,5,9,2,6,5,3,5') {
my %h;
$h{$_}++ for eval;
($s) = sort grep{1 == $h{$_}} keys %h;
$s //= -1;
print "$_ -> $s\n";
}
実行結果
~ $ perl 15_91_3.pl
1,1,1,1,2,2,2,3,3,4 -> 4
1,2,3,4,5,5,4,3,2,1 -> -1
3,1,4,1,5,9,2,6,5,3,5 -> 2
115デフォルトの名無しさん
2019/08/13(火) 07:30:43.99ID:kJJDzO2R >>91
Ruby で
# 数字の配列の配列。改行は削除
nums = <<"EOT".lines( chomp: true ).map{ |str| str.split( "," ).map( &:to_i ) }
1,1,1,1,2,2,2,3,3,4
1,2,3,4,5,5,4,3,2,1
3,1,4,1,5,9,2,6,5,3,5
EOT
results = nums.each_with_object( [ ] ) do |ary, results|
uniq_ary = ary.uniq # 重複排除
uniq_ary.sort! # ソート
res = -1
uniq_ary.each do |num|
if ary.count( num ) == 1
res = num; break
end
end
results.push res
end
p results #=> [4, -1, 2]
Ruby で
# 数字の配列の配列。改行は削除
nums = <<"EOT".lines( chomp: true ).map{ |str| str.split( "," ).map( &:to_i ) }
1,1,1,1,2,2,2,3,3,4
1,2,3,4,5,5,4,3,2,1
3,1,4,1,5,9,2,6,5,3,5
EOT
results = nums.each_with_object( [ ] ) do |ary, results|
uniq_ary = ary.uniq # 重複排除
uniq_ary.sort! # ソート
res = -1
uniq_ary.each do |num|
if ary.count( num ) == 1
res = num; break
end
end
results.push res
end
p results #=> [4, -1, 2]
116デフォルトの名無しさん
2019/08/14(水) 01:39:36.14ID:G04CimIq117デフォルトの名無しさん
2019/08/14(水) 01:45:59.79ID:spdKRMJM >>116
うわぁ…山中俊次かよ
うわぁ…山中俊次かよ
118115
2019/08/14(水) 03:01:09.16ID:ms62dfnn >>91
Ruby で、>>115 を修正した
# 数字の配列の配列。改行は削除
nums = <<"EOT".lines( chomp: true ).map{ |str| str.split( "," ).map( &:to_i ) }
1,1,1,1,2,2,2,3,3,4
1,2,3,4,5,5,4,3,2,1
3,1,4,1,5,9,2,6,5,3,5
EOT
def resolve( ary )
# 数字の出現回数を数える。Hash の初期値は、0
hash = ary.each_with_object( Hash.new( 0 ) ) {
|num, hash| hash[ num ] += 1 }
hash_2 = hash.select { |key, val| val == 1 } # 1回のもの
# キーでソートして、最小の数字を返す
number = Hash[ hash_2.sort ].keys.first
number = -1 if number == nil
number
end
p nums.map { |ary| resolve ary } #=> [4, -1, 2]
Ruby で、>>115 を修正した
# 数字の配列の配列。改行は削除
nums = <<"EOT".lines( chomp: true ).map{ |str| str.split( "," ).map( &:to_i ) }
1,1,1,1,2,2,2,3,3,4
1,2,3,4,5,5,4,3,2,1
3,1,4,1,5,9,2,6,5,3,5
EOT
def resolve( ary )
# 数字の出現回数を数える。Hash の初期値は、0
hash = ary.each_with_object( Hash.new( 0 ) ) {
|num, hash| hash[ num ] += 1 }
hash_2 = hash.select { |key, val| val == 1 } # 1回のもの
# キーでソートして、最小の数字を返す
number = Hash[ hash_2.sort ].keys.first
number = -1 if number == nil
number
end
p nums.map { |ary| resolve ary } #=> [4, -1, 2]
119115
2019/08/15(木) 05:28:22.88ID:5MxOdPEK >>118
の、resolve 関数を修正
# キーでソートして、最小の数字を返す
>number = Hash[ hash_2.sort ].keys.first
pair = Hash[ hash_2.sort ].first # [ key, value ]
keys を使うと、ハッシュのキー配列が作られるため、処理が多くなるので、修正します
def resolve( ary )
# 各数字の出現回数を数える。Hash の初期値は、0
hash = ary.each_with_object( Hash.new( 0 ) ) {
|num, hash| hash[ num ] += 1 }
hash_2 = hash.select { |key, val| val == 1 } # 1回のもの
# キーでソートして、最小の数字を返す
pair = Hash[ hash_2.sort ].first # [ key, value ]
if pair == nil
number = -1
else
number = pair[ 0 ] # key
end
number
end
の、resolve 関数を修正
# キーでソートして、最小の数字を返す
>number = Hash[ hash_2.sort ].keys.first
pair = Hash[ hash_2.sort ].first # [ key, value ]
keys を使うと、ハッシュのキー配列が作られるため、処理が多くなるので、修正します
def resolve( ary )
# 各数字の出現回数を数える。Hash の初期値は、0
hash = ary.each_with_object( Hash.new( 0 ) ) {
|num, hash| hash[ num ] += 1 }
hash_2 = hash.select { |key, val| val == 1 } # 1回のもの
# キーでソートして、最小の数字を返す
pair = Hash[ hash_2.sort ].first # [ key, value ]
if pair == nil
number = -1
else
number = pair[ 0 ] # key
end
number
end
120デフォルトの名無しさん
2019/08/16(金) 00:38:41.91ID:eRShYMGh お題: 任意の2桁の自然数の各桁を、1桁になるまで掛け算する回数の最大回数とその数を示せ
15なら1x5=5と1回
93なら9x3=27, 2x7=14, 1x4=3と3回
15なら1x5=5と1回
93なら9x3=27, 2x7=14, 1x4=3と3回
121デフォルトの名無しさん
2019/08/16(金) 01:31:17.83ID:eRShYMGh >>120
最後1x4=3じゃなくて1x4=4だった
最後1x4=3じゃなくて1x4=4だった
122デフォルトの名無しさん
2019/08/16(金) 04:22:25.57ID:JO1Ik9g1 >>120
common lisp
https://pastebin.com/dAXgwYYX
出力
15=>(5 1)
93=>(4 3)
66=>(8 3)
51=>(5 1)
52=>(0 2)
61=>(6 1)
11=>(1 1)
common lisp
https://pastebin.com/dAXgwYYX
出力
15=>(5 1)
93=>(4 3)
66=>(8 3)
51=>(5 1)
52=>(0 2)
61=>(6 1)
11=>(1 1)
123デフォルトの名無しさん
2019/08/16(金) 04:32:18.49ID:4vR5Al7i >>120 Ruby 1桁以上に拡張してみた
def colmul( val )
n = 0
while val >= 10
ans = 1
begin
val, c = val.divmod( 10 )
ans *= c
n += 1
end while val >= 10
val *= ans
end
[n, val]
end
[15,93, 77, 123].each{|n|
puts "%5d %3d %d" % [n, *colmul( n )]
}
実行結果
15 1 5
93 3 4
77 4 8
123 2 6
def colmul( val )
n = 0
while val >= 10
ans = 1
begin
val, c = val.divmod( 10 )
ans *= c
n += 1
end while val >= 10
val *= ans
end
[n, val]
end
[15,93, 77, 123].each{|n|
puts "%5d %3d %d" % [n, *colmul( n )]
}
実行結果
15 1 5
93 3 4
77 4 8
123 2 6
124デフォルトの名無しさん
2019/08/16(金) 07:11:52.40ID:idyJWhoT >>120 Squeak Smalltalk (Pharo では若干の修正が必要)
| fn ans |
fn := [:n |
| count digits |
count := 0.
[(digits := n asString asArray collect: #digitValue) size > 1]
whileTrue: [n := digits reduce: #*. count := count + 1].
count
].
ans := Set with: nil->0.
fn value: 15. "=> 1 "
fn value: 93. "=> 3 "
fn value: 277777788888899. "=> 11 "
(1 to: 9) do: [:i |
(i to: 9) do: [:j |
| kv m |
kv := (m := i * 10 + j) -> (fn value: m).
kv value = ans anyOne value ifTrue: [ans add: kv].
kv value > ans anyOne value ifTrue: [ans removeAll; add: kv]
]
].
^ans asArray "=> {77->4} "
| fn ans |
fn := [:n |
| count digits |
count := 0.
[(digits := n asString asArray collect: #digitValue) size > 1]
whileTrue: [n := digits reduce: #*. count := count + 1].
count
].
ans := Set with: nil->0.
fn value: 15. "=> 1 "
fn value: 93. "=> 3 "
fn value: 277777788888899. "=> 11 "
(1 to: 9) do: [:i |
(i to: 9) do: [:j |
| kv m |
kv := (m := i * 10 + j) -> (fn value: m).
kv value = ans anyOne value ifTrue: [ans add: kv].
kv value > ans anyOne value ifTrue: [ans removeAll; add: kv]
]
].
^ans asArray "=> {77->4} "
125デフォルトの名無しさん
2019/08/16(金) 09:55:22.61ID:w6EX52R7 >>120 python
from operator import mul
def kake(n, ls):
__m = reduce(mul, map(lambda x:int(x), list(str(n)) ) )
__ls.append(m)
__if len(str(m)) == 1:
____return
__kake(m, ls)
test = [0, 1, 9, 11, 15, 51, 52, 61, 66, 77, 93, 123, 277777788888899]
for n in test:
__ls = []
__kake(n, ls)
__print "n="+str(n)+", "+"list="+str(ls)+", "+"len="+str(len(ls))+", "+"last="+str(ls[-1])
実行結果
n=0, list=[0], len=1, last=0
n=1, list=[1], len=1, last=1
n=9, list=[9], len=1, last=9
n=11, list=[1], len=1, last=1
n=15, list=[5], len=1, last=5
n=51, list=[5], len=1, last=5
n=52, list=[10, 0], len=2, last=0
n=61, list=[6], len=1, last=6
n=66, list=[36, 18, 8], len=3, last=8
n=77, list=[49, 36, 18, 8], len=4, last=8
n=93, list=[27, 14, 4], len=3, last=4
n=123, list=[6], len=1, last=6
n=277777788888899, list=[4996238671872L, 438939648, 4478976, 338688, 27648, 2688, 768, 336, 54, 20, 0], len=11, last=0
from operator import mul
def kake(n, ls):
__m = reduce(mul, map(lambda x:int(x), list(str(n)) ) )
__ls.append(m)
__if len(str(m)) == 1:
____return
__kake(m, ls)
test = [0, 1, 9, 11, 15, 51, 52, 61, 66, 77, 93, 123, 277777788888899]
for n in test:
__ls = []
__kake(n, ls)
__print "n="+str(n)+", "+"list="+str(ls)+", "+"len="+str(len(ls))+", "+"last="+str(ls[-1])
実行結果
n=0, list=[0], len=1, last=0
n=1, list=[1], len=1, last=1
n=9, list=[9], len=1, last=9
n=11, list=[1], len=1, last=1
n=15, list=[5], len=1, last=5
n=51, list=[5], len=1, last=5
n=52, list=[10, 0], len=2, last=0
n=61, list=[6], len=1, last=6
n=66, list=[36, 18, 8], len=3, last=8
n=77, list=[49, 36, 18, 8], len=4, last=8
n=93, list=[27, 14, 4], len=3, last=4
n=123, list=[6], len=1, last=6
n=277777788888899, list=[4996238671872L, 438939648, 4478976, 338688, 27648, 2688, 768, 336, 54, 20, 0], len=11, last=0
126デフォルトの名無しさん
2019/08/16(金) 10:19:15.90ID:s+gRsoB0 >>120 Ruby
f = -> n {[(1..).find{10 > n = n.divmod(10).reduce(:*)}, n]}
(10..99).group_by{|i| f[i]}.max.tap{|m| m.last.each{|v| puts '%dは%d回で%dになる.' % [v, *m.first]}}
# => 77は4回で8になる.
f = -> n {[(1..).find{10 > n = n.divmod(10).reduce(:*)}, n]}
(10..99).group_by{|i| f[i]}.max.tap{|m| m.last.each{|v| puts '%dは%d回で%dになる.' % [v, *m.first]}}
# => 77は4回で8になる.
127デフォルトの名無しさん
2019/08/16(金) 11:35:03.96ID:Y33v+D/I >>120 Perl5
use List::Util reduce;
for (qw{15 93 123 277777788888899}) {
($n, $i) = ($_, 0);
while (1 < length $n) {
$n = reduce {$a * $b} split '', $n;
$i++;
}
print "$_ -> $i回で $nになる\n";
}
実行結果
~ $ perl 15_120.pl
15 -> 1回で 5になる
93 -> 3回で 4になる
123 -> 1回で 6になる
277777788888899 -> 11回で 0になる
use List::Util reduce;
for (qw{15 93 123 277777788888899}) {
($n, $i) = ($_, 0);
while (1 < length $n) {
$n = reduce {$a * $b} split '', $n;
$i++;
}
print "$_ -> $i回で $nになる\n";
}
実行結果
~ $ perl 15_120.pl
15 -> 1回で 5になる
93 -> 3回で 4になる
123 -> 1回で 6になる
277777788888899 -> 11回で 0になる
128デフォルトの名無しさん
2019/08/16(金) 11:40:17.74ID:FoYt1ZXR 実用上、意味のないことは寝言という。
129デフォルトの名無しさん
2019/08/16(金) 11:52:49.37ID:38QTrPdc グッスリお休み。
130デフォルトの名無しさん
2019/08/16(金) 17:08:53.11ID:/mNc+3sP131デフォルトの名無しさん
2019/08/16(金) 19:41:08.88ID:4vR5Al7i 2x7x7x7x7x7x7x8x8x8x8x8x8x9x9=4996238671872
この段階で、掛け算14回じゃなくて1回になるの?
この段階で、掛け算14回じゃなくて1回になるの?
132デフォルトの名無しさん
2019/08/16(金) 21:11:10.70ID:UOmTAtC9 元のお題は2桁の自然数なのでそれよりも桁が多いならその場合のルールも決めないとダメだろうな。
133デフォルトの名無しさん
2019/08/16(金) 22:49:37.86ID:WXGx/ZZ4 > 2x7x7x7x7x7x7x8x8x8x8x8x8x9x9=4996238671872
を1回としても14回としても解き方はたいして変わらんからどっちでもいいと思う
とりあえず回答例見たら1回としてるみたいだから1回の方でいいんじゃね
を1回としても14回としても解き方はたいして変わらんからどっちでもいいと思う
とりあえず回答例見たら1回としてるみたいだから1回の方でいいんじゃね
134デフォルトの名無しさん
2019/08/17(土) 05:49:01.88ID:He41kTu9 >>120
common lisp
https://pastebin.com/ZcaYiA3N
任意の自然数に拡張した
split-num を実装してて思った
perl の数字と文字を自由に行き来できる cool型マジcool
common lisp
https://pastebin.com/ZcaYiA3N
任意の自然数に拡張した
split-num を実装してて思った
perl の数字と文字を自由に行き来できる cool型マジcool
135デフォルトの名無しさん
2019/08/17(土) 05:57:53.54ID:He41kTu9 15=>(5 1)
93=>(4 3)
198=>(4 3)
468=>(8 3)
738=>(6 4)
793=>(4 4)
1748=>(6 3)
93=>(4 3)
198=>(4 3)
468=>(8 3)
738=>(6 4)
793=>(4 4)
1748=>(6 3)
136デフォルトの名無しさん
2019/08/17(土) 15:01:05.32ID:m7Zf+/1R >>120 Perl5
use feature current_sub;
use List::Util reduce;
for (qw{15 93 123 277777788888899}) {
$i = 0;
$n = sub {
return shift if 1 == @_;
$i++, __SUB__->(split'', reduce {$a * $b } @_);
}->(split'');
print "$_ -> $i回で $nになる\n";
}
実行結果
~ $ perl 15_120_2.pl
15 -> 1回で 5になる
93 -> 3回で 4になる
123 -> 1回で 6になる
277777788888899 -> 11回で 0になる
use feature current_sub;
use List::Util reduce;
for (qw{15 93 123 277777788888899}) {
$i = 0;
$n = sub {
return shift if 1 == @_;
$i++, __SUB__->(split'', reduce {$a * $b } @_);
}->(split'');
print "$_ -> $i回で $nになる\n";
}
実行結果
~ $ perl 15_120_2.pl
15 -> 1回で 5になる
93 -> 3回で 4になる
123 -> 1回で 6になる
277777788888899 -> 11回で 0になる
137さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/08/17(土) 15:58:34.13ID:hkO+8710 お題: オカダンゴムシには進行中に壁にぶつかると左へ、次は右へ(あるいは右へ、次は左へ)と交互に曲がっていく習性がある。この行動は「交替性転向反応」といい、左右に交互に曲がる事で天敵から逃げられる確率を高めているといわれている(ウィキペディアより引用)。
何もない整数平面上にスタート地点(S)とゴール地点(G)が与えられる。仮想ダンゴムシ(@)の周辺に壁(#)をいくつか作って、スタート地点からゴール地点まで誘導せよ。
ただし、ダンゴムシは最初は右向きを向いていて、最初にぶつかったら左に曲がるものとする。
90度曲がって目の前にすぐに壁がある場合は同じ方へもう90度曲がるものとする。壁はいくつ作ってもよい。
例) S=(0, 0), G=(5, 2)
→#={(6, 0)}.
例) S=(1, 2), G=(-1, 1)
→#={(2, 2), (1, 3), (0, 2), (1, 0)}.
何もない整数平面上にスタート地点(S)とゴール地点(G)が与えられる。仮想ダンゴムシ(@)の周辺に壁(#)をいくつか作って、スタート地点からゴール地点まで誘導せよ。
ただし、ダンゴムシは最初は右向きを向いていて、最初にぶつかったら左に曲がるものとする。
90度曲がって目の前にすぐに壁がある場合は同じ方へもう90度曲がるものとする。壁はいくつ作ってもよい。
例) S=(0, 0), G=(5, 2)
→#={(6, 0)}.
例) S=(1, 2), G=(-1, 1)
→#={(2, 2), (1, 3), (0, 2), (1, 0)}.
138デフォルトの名無しさん
2019/08/17(土) 16:18:33.55ID:RHoMoFJP >>137
ダンゴムシは初手でどこに向いてるの?北?Y+?X+?
ダンゴムシは初手でどこに向いてるの?北?Y+?X+?
139さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/08/17(土) 16:19:06.00ID:hkO+8710 ヒント: 最初、スタートとゴールを囲むように壁を仮設する。ぶつからない壁は要らない。
140さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/08/17(土) 16:20:08.58ID:hkO+8710 ダンゴムシはx軸方向です。y軸は数学と同じ上向きを仮定してます。
141デフォルトの名無しさん
2019/08/17(土) 17:21:32.91ID:RHoMoFJP Y+がビジュアライズして上になるかはビジュアライザーの挙動次第なのでいいのだけど。
最初はX+向いてるのね。承知。
最初はX+向いてるのね。承知。
142デフォルトの名無しさん
2019/08/17(土) 17:25:39.14ID:RHoMoFJP あ、もう一つあるんだ。
最初にダンゴムシが壁にぶつかったときは右と左どっち優先?
////
#
@#
////
の時。
方向がX+の時に左へターンしたら無限ループする。
逆に、方向がY+の時右にターンしたら無限ループする。
どや?
最初にダンゴムシが壁にぶつかったときは右と左どっち優先?
////
#
@#
////
の時。
方向がX+の時に左へターンしたら無限ループする。
逆に、方向がY+の時右にターンしたら無限ループする。
どや?
143デフォルトの名無しさん
2019/08/17(土) 17:28:20.45ID:uIV5R7Aj > ただし、ダンゴムシは最初は右向きを向いていて、最初にぶつかったら左に曲がるものとする。
144デフォルトの名無しさん
2019/08/17(土) 17:29:33.02ID:wzQeNn8E >>142
>90度曲がって目の前にすぐに壁がある場合は同じ方へもう90度曲がるものとする。
>90度曲がって目の前にすぐに壁がある場合は同じ方へもう90度曲がるものとする。
145デフォルトの名無しさん
2019/08/17(土) 17:29:46.66ID:RHoMoFJP すみません。見落としていました。
大変申し訳ありません。
大変申し訳ありません。
146デフォルトの名無しさん
2019/08/17(土) 19:06:19.57ID:c+Xct49t クソコテの相手すんなよ
147さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/08/17(土) 20:39:30.65ID:hkO+8710 世界はクソにあふれている! 何てこった! この状況を! この状況を変えるためには、クソをせずに生きれる仕組みを! 皆様と一緒にクソをせずに生きれる仕組みを、実現して! 行きましょう!
148デフォルトの名無しさん
2019/08/17(土) 23:18:56.65ID:+079Z1et そこでファナモの出番なわけですよ
149デフォルトの名無しさん
2019/08/17(土) 23:52:46.77ID:9or86GZG それよりも交替性転換反応とやらが本当に生存確率を高めるのか
右にばかり曲がりたがる逃亡犯と左にしか曲がれない共産党員を例に
シミュレーションを繰り返すプログラムを書いて?(゚∀゚)
右にばかり曲がりたがる逃亡犯と左にしか曲がれない共産党員を例に
シミュレーションを繰り返すプログラムを書いて?(゚∀゚)
150デフォルトの名無しさん
2019/08/18(日) 00:30:12.24ID:Onid3Fuw FPSのレレレ撃ちでしょ
ゲームで実験結果がでているからYoutubeにGo
ゲームで実験結果がでているからYoutubeにGo
151デフォルトの名無しさん
2019/08/18(日) 01:00:00.23ID:C9/yeHaG あなた達は、実は自分で思っているほど
ソフトウエアの開発が得意ではないということに
まだ気がついてすら至っていない
ソフトウエアの開発が得意ではないということに
まだ気がついてすら至っていない
152さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/08/18(日) 01:50:38.18ID:f2ZPM7Xh >>151
そうだよね。ソフトクリーム作るのって大変だね。ちなみに英語ではジェラートだからね。
そうだよね。ソフトクリーム作るのって大変だね。ちなみに英語ではジェラートだからね。
153デフォルトの名無しさん
2019/08/18(日) 02:07:00.19ID:4oEGaRbg >>151
君は、実は自分で思っているほど日本語が得意ではないということにまだ気づいていない。
君は、実は自分で思っているほど日本語が得意ではないということにまだ気づいていない。
154デフォルトの名無しさん
2019/08/18(日) 02:25:43.87ID:zcvAoSag そう来ると思っていました。
155デフォルトの名無しさん
2019/08/18(日) 16:17:40.63ID:YNXq+wty156デフォルトの名無しさん
2019/08/18(日) 16:41:42.29ID:YNXq+wty 一番だよ〜。ほめてほめて〜〜!!
157デフォルトの名無しさん
2019/08/18(日) 17:02:53.87ID:MNRPGL9Z 乙。
158デフォルトの名無しさん
2019/08/18(日) 17:05:38.20ID:Onid3Fuw O(1)だよ
159デフォルトの名無しさん
2019/08/18(日) 17:21:04.50ID:YNXq+wty やっほーい。
160さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/08/18(日) 17:59:15.27ID:f2ZPM7Xh スタート地点に壁を作ってるみたい。アルゴリズムの詰めが甘いようだ。
161デフォルトの名無しさん
2019/08/18(日) 18:37:31.03ID:YNXq+wty162デフォルトの名無しさん
2019/08/18(日) 18:38:29.32ID:Y3okjmnX164さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/08/18(日) 19:33:02.90ID:f2ZPM7Xh お題: 壁で囲まれた何もない有限の部屋(面積5m^3前後)の中に、四方向に距離センサーが付いた、丸い形のお掃除ロボット(直径20cm)がある。
各距離センサーは、ロボットからその方向にある障害物までの距離を常に教えてくれる。
ロボットはその場で右または左に5度単位で自転するか、もしくは前方向に5cm単位で前進できる。
部屋全体のおおよその形がわかるまで、ロボットを動かしなさい。
例) 正方形の部屋
例) 正三角形の部屋
例) 凹の形の部屋
各距離センサーは、ロボットからその方向にある障害物までの距離を常に教えてくれる。
ロボットはその場で右または左に5度単位で自転するか、もしくは前方向に5cm単位で前進できる。
部屋全体のおおよその形がわかるまで、ロボットを動かしなさい。
例) 正方形の部屋
例) 正三角形の部屋
例) 凹の形の部屋
165さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/08/18(日) 19:46:24.23ID:f2ZPM7Xh 直径20cmが入り込めない隙間は無視、もしくは壁と見なす。
スクリーンショットか動画を作れたら、30点加点する。
スクリーンショットか動画を作れたら、30点加点する。
166デフォルトの名無しさん
2019/08/18(日) 19:59:22.35ID:Y3okjmnX 面積なのに^3とはこれ如何に
167さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/08/18(日) 20:17:13.38ID:OH7aQxbJ168デフォルトの名無しさん
2019/08/19(月) 11:34:00.91ID:icNxZHqv >>164
部屋の壁の構成が凹を基本としたヒルベルト曲線だったら「おおよその形」はそのロボットのAIは何と答えればいいの?
ttps://cdn-ak.f.st-hatena.com/images/fotolife/o/obelisk2/20161224/20161224022849.png
部屋の壁の構成が凹を基本としたヒルベルト曲線だったら「おおよその形」はそのロボットのAIは何と答えればいいの?
ttps://cdn-ak.f.st-hatena.com/images/fotolife/o/obelisk2/20161224/20161224022849.png
169デフォルトの名無しさん
2019/08/19(月) 11:46:10.65ID:icNxZHqv もしくは、「壁」とは何か
170デフォルトの名無しさん
2019/08/19(月) 12:00:44.91ID:78Wz1qhX171デフォルトの名無しさん
2019/08/19(月) 12:36:53.71ID:ChF0jSyn 4個目のスタート地点の壁を許しても、3個目の答えが間違えてるやん?
[-1,1]の壁を1回透過しないとゴールにたどり着けないやん?
まあ [*いしのなかにいる*] は許されないと思うけどw
[-1,1]の壁を1回透過しないとゴールにたどり着けないやん?
まあ [*いしのなかにいる*] は許されないと思うけどw
172デフォルトの名無しさん
2019/08/19(月) 12:50:21.54ID:78Wz1qhX173デフォルトの名無しさん
2019/08/19(月) 13:04:09.25ID:ChF0jSyn 動的ターン制って考えは思いつかんかった
その考えなら>>155でも問題ないな
その考えなら>>155でも問題ないな
174デフォルトの名無しさん
2019/08/19(月) 13:05:56.48ID:78Wz1qhX 握手(非強制)
175さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/08/19(月) 13:45:26.16ID:5pda5jNo 部屋の形を表すビットマップ画像、もしくは一個以上の多角形でいいよ。
176さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/08/19(月) 13:49:12.41ID:5pda5jNo 誤差は気にしない、気にしない。
177さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/08/19(月) 13:53:20.88ID:5pda5jNo >>173
壁をいつ置くかの記述がなかった、設問の不備ということで、正解、にしときます。すみません。
壁をいつ置くかの記述がなかった、設問の不備ということで、正解、にしときます。すみません。
178デフォルトの名無しさん
2019/08/19(月) 21:12:29.11ID:78Wz1qhX 及第点!
179デフォルトの名無しさん
2019/08/19(月) 21:48:51.89ID:KFTDhNgP コテのくせに偉そうだな
180デフォルトの名無しさん
2019/08/20(火) 03:10:44.70ID:p19J/GFP アスペばっかやんけこのスレ
181デフォルトの名無しさん
2019/08/23(金) 16:30:48.96ID:GCcQKmFF182デフォルトの名無しさん
2019/08/27(火) 08:48:20.54ID://c3Bn/y >>4 Java
https://ideone.com/JHb8WE
>>5-6
> T = std::max(T,UI(mt));
> if (T >= C) { Re++; }
保持してる最大値でもう一回振るかどうか決めちゃってないかい?
https://ideone.com/JHb8WE
>>5-6
> T = std::max(T,UI(mt));
> if (T >= C) { Re++; }
保持してる最大値でもう一回振るかどうか決めちゃってないかい?
183デフォルトの名無しさん
2019/08/27(火) 20:29:01.48ID:ZWZUVJ+Q184デフォルトの名無しさん
2019/08/27(火) 20:38:02.13ID:ZWZUVJ+Q あ、勘違いしてた。ちょっと待ってて。
185デフォルトの名無しさん
2019/08/27(火) 20:41:11.53ID:ZWZUVJ+Q186デフォルトの名無しさん
2019/08/27(火) 21:01:10.99ID://c3Bn/y187デフォルトの名無しさん
2019/08/27(火) 21:06:40.25ID:ZWZUVJ+Q188デフォルトの名無しさん
2019/08/27(火) 21:10:12.33ID:ZWZUVJ+Q189デフォルトの名無しさん
2019/08/27(火) 22:42:10.07ID:ZWZUVJ+Q お題:値が変更不可能でインデックスだけ参照できるシャッフルされた配列を何らかの方法でソートする。その際配列や値のコピーは取れない。
C++でいう、constの配列をなんとか整列してみましょう。
自分の答え。:https://ideone.com/4S932i
C++でいう、constの配列をなんとか整列してみましょう。
自分の答え。:https://ideone.com/4S932i
190デフォルトの名無しさん
2019/08/28(水) 00:04:27.28ID:4LHTj8UL >>189 Perl5
use List::Util shuffle;
@a = shuffle 1..10;
@ix = 0..$#a;
print "@a\n";
@iy = sort{$a[$a] <=> $a[$b]} @ix;
print "@a[@iy]\n";
実行例
~ $ perl 15_189.pl
5 2 4 8 3 10 6 9 1 7
1 2 3 4 5 6 7 8 9 10
use List::Util shuffle;
@a = shuffle 1..10;
@ix = 0..$#a;
print "@a\n";
@iy = sort{$a[$a] <=> $a[$b]} @ix;
print "@a[@iy]\n";
実行例
~ $ perl 15_189.pl
5 2 4 8 3 10 6 9 1 7
1 2 3 4 5 6 7 8 9 10
191デフォルトの名無しさん
2019/08/28(水) 00:57:09.32ID:iZEqAFR9 激お題:自動プログラミングプログラムを作るか日本語で説明せよ。方法は各自の言語にゆだねる。
https://ideone.com/2UWc8g
自分は上記のようなものを作った。
4kb位のプログラムができるのに多分数年かかる。
コンパイラの通ったかというのを取れれば文章的に正しいやつは何かを残していく。
でも、コンパイラに投げる動作はわからないので入れてない。
https://ideone.com/2UWc8g
自分は上記のようなものを作った。
4kb位のプログラムができるのに多分数年かかる。
コンパイラの通ったかというのを取れれば文章的に正しいやつは何かを残していく。
でも、コンパイラに投げる動作はわからないので入れてない。
192デフォルトの名無しさん
2019/08/28(水) 01:00:49.34ID:iZEqAFR9193デフォルトの名無しさん
2019/08/28(水) 01:14:30.34ID:mmOF8lug >>191 ナンジャそれは、お題でもなんでもない。 まず日本語の勉強をして出直してこい。
お題も人に解る様に出せないような人間はプログラマの素質はない。
お題も人に解る様に出せないような人間はプログラマの素質はない。
194デフォルトの名無しさん
2019/08/28(水) 01:51:57.69ID:iZEqAFR9196デフォルトの名無しさん
2019/08/28(水) 14:09:15.46ID:iZEqAFR9197デフォルトの名無しさん
2019/08/28(水) 14:20:49.15ID:iHRPACN2 まず自動プログラミングプログラムってなんだよ
お前の造語なんか知らんわ
お前の造語なんか知らんわ
198デフォルトの名無しさん
2019/08/28(水) 14:40:15.76ID:9ymulh1y ドメイン特化言語作れってことか?
199デフォルトの名無しさん
2019/08/28(水) 14:40:49.41ID:gV1iThk/ >>189
Kotlin
https://paiza.io/projects/hCnNPeSohDhcerAL2MMqag
こんなので良いのかな?
厳密に言ったら最後の出力文字列を作る時の map で値が取り出されて新たなリスト作るからコピーされちゃってんだけどね。
Kotlin
https://paiza.io/projects/hCnNPeSohDhcerAL2MMqag
こんなので良いのかな?
厳密に言ったら最後の出力文字列を作る時の map で値が取り出されて新たなリスト作るからコピーされちゃってんだけどね。
200デフォルトの名無しさん
2019/08/28(水) 14:47:42.49ID:iZEqAFR9 「自動プログラミング」「プログラム」ですが何か。
DSLじゃないわ。
DSLじゃないわ。
201デフォルトの名無しさん
2019/08/28(水) 14:52:51.27ID:CKrqMRiB 1文字ごとにカンマが入って空白or改行を使わないプログラミング言語ってなんだろう…?
4kb(この表記だとビットかバイトかわからん)が数年で行けるってどういう計算だろう…?
4kb(この表記だとビットかバイトかわからん)が数年で行けるってどういう計算だろう…?
202デフォルトの名無しさん
2019/08/28(水) 14:59:27.89ID:iZEqAFR9203デフォルトの名無しさん
2019/08/28(水) 15:03:25.48ID:iZEqAFR9 >>201
文字の列挙のリストには抜けがあるかもしれない。
C++は改行しなくても空白さえあればかける気がするけど。
なお、字数が増えれば増えるほど遅くなる。
とりあえず、実行してみればわかるけど、検索文字を総当たりしてるだけだからね。
んで、コンパイラに投げて通るかどうかのチェック入れないといけないんだ。
文字の列挙のリストには抜けがあるかもしれない。
C++は改行しなくても空白さえあればかける気がするけど。
なお、字数が増えれば増えるほど遅くなる。
とりあえず、実行してみればわかるけど、検索文字を総当たりしてるだけだからね。
んで、コンパイラに投げて通るかどうかのチェック入れないといけないんだ。
204デフォルトの名無しさん
2019/08/28(水) 15:06:25.36ID:iZEqAFR9205デフォルトの名無しさん
2019/08/28(水) 15:59:11.53ID:CKrqMRiB 字数が増えれば増えるほど遅くなる、の遅くなり具合がわかってない気がする
使用する文字の種類を60とした場合、総当たりで毎秒10億個生成できても19年で10文字くらいだよ
使用する文字の種類を60とした場合、総当たりで毎秒10億個生成できても19年で10文字くらいだよ
206デフォルトの名無しさん
2019/08/28(水) 16:09:46.11ID:DKDzG5Os ただの無限の猿定理では?
207デフォルトの名無しさん
2019/08/28(水) 16:18:28.21ID:iZEqAFR9208デフォルトの名無しさん
2019/08/28(水) 16:19:08.51ID:DKDzG5Os 設問が悪い。
自動プログラミングプログラムの出力が不正でなければ良い→コンパイルエラーないしはランタイムエラーを出さない、で良いの?
phpのソースを書き出せば問題ない。
ランダムな文字列を出力し続けても、文字空間が64文字であれば、5文字目以降、毎回1/1073741824で失敗するがそれ以外のケースで自分自身を表示する正しいプログラムになる。
自動プログラミングプログラムの出力が不正でなければ良い→コンパイルエラーないしはランタイムエラーを出さない、で良いの?
phpのソースを書き出せば問題ない。
ランダムな文字列を出力し続けても、文字空間が64文字であれば、5文字目以降、毎回1/1073741824で失敗するがそれ以外のケースで自分自身を表示する正しいプログラムになる。
209デフォルトの名無しさん
2019/08/28(水) 16:42:26.29ID:e0ao7N2r >>200 自動プログラミングが何で数字の羅列なんだよ。
何処がプログラミングだよ。 こんな物どんなコンパイラを通したら意味を持ったプログラムになるんだよ。
何処がプログラミングだよ。 こんな物どんなコンパイラを通したら意味を持ったプログラムになるんだよ。
210デフォルトの名無しさん
2019/08/28(水) 16:43:40.35ID:e0ao7N2r >>200 自分が日本語で説明してみろよ。
211デフォルトの名無しさん
2019/08/28(水) 17:16:03.37ID:iZEqAFR9212デフォルトの名無しさん
2019/08/28(水) 17:16:54.34ID:iZEqAFR9 とりあえず、絶不評なので>>191は終了します。
お付き合いいただきありがとうございました。
お付き合いいただきありがとうございました。
213デフォルトの名無しさん
2019/08/28(水) 17:33:20.06ID:DKDzG5Os ガチでやるなら遺伝的アルゴリズムで遊んだほうが面白そうな話題ではある。
総当たりは分が悪い。
総当たりは分が悪い。
214デフォルトの名無しさん
2019/08/28(水) 18:50:08.98ID:sIwi/wTh みんなまじめに小学生の相手して偉いなぁ
215デフォルトの名無しさん
2019/08/28(水) 19:02:24.38ID:31wF8+fr ネットでプログラムとかコードとかの記事検索して予約語が含まれるセンテンスをコピペするプログラムとかどう?(゚∀゚)<これを自動プログラミングと呼べるかどうか知らんけど
216デフォルトの名無しさん
2019/08/28(水) 19:28:19.63ID:gV1iThk/ >>212
最後まで何をやらせたいのかわからなかった。
最後まで何をやらせたいのかわからなかった。
217デフォルトの名無しさん
2019/08/28(水) 20:50:01.23ID:f9cLfftu218デフォルトの名無しさん
2019/08/29(木) 00:02:26.73ID:gFHz9oC8 まあ例のコテロートルだろうな
219さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/08/29(木) 00:48:42.64ID:5IzqEHY7 お題: 入力として任意の長さのバイト列(半角アルファベット)が与えられる。入力を左から読み取っていくとき、
読み込まれるバイトの状態遷移を表すデータまたは画像を出力せよ。ただし、初期状態は'^'、終了状態は'$'で
表すものとし、状態遷移図のノードには重複がないものとする。
例)
"AKDAK"
→
^: A.
A: K.
K: D$.
D: A.
$: .
読み込まれるバイトの状態遷移を表すデータまたは画像を出力せよ。ただし、初期状態は'^'、終了状態は'$'で
表すものとし、状態遷移図のノードには重複がないものとする。
例)
"AKDAK"
→
^: A.
A: K.
K: D$.
D: A.
$: .
220デフォルトの名無しさん
2019/08/29(木) 01:15:35.61ID:goo8Bnc2 mousukosikangaetekarasyutudasisiroyokusokotega
222デフォルトの名無しさん
2019/08/29(木) 11:53:46.40ID:DcYjq8Qg nande2do$ga deterunda?
223デフォルトの名無しさん
2019/08/29(木) 13:28:32.46ID:gjTy67rx225デフォルトの名無しさん
2019/08/29(木) 20:21:57.74ID:1SU6nQHs ループまで検出シロっていってるのかいな?
226デフォルトの名無しさん
2019/08/30(金) 00:51:59.58ID:0mnJOhtL >>222
D$は、Dに遷移するか、または、$に遷移するって意味じゃないかな
D$は、Dに遷移するか、または、$に遷移するって意味じゃないかな
227デフォルトの名無しさん
2019/08/30(金) 01:22:20.46ID:Knt08H1L ちゃうやろJK
edgeの終端が二股は有効グラフではNGやで
edgeの終端が二股は有効グラフではNGやで
228デフォルトの名無しさん
2019/08/30(金) 06:09:58.43ID:N+Bub+CM お題
1億以下の同じ数字でできている数(1,22,777など)をすべて表示する
1億以下の同じ数字でできている数(1,22,777など)をすべて表示する
229デフォルトの名無しさん
2019/08/30(金) 06:52:02.20ID:BnHn7wdj230デフォルトの名無しさん
2019/08/30(金) 06:53:07.28ID:BnHn7wdj 0抜けてた悔しい
231デフォルトの名無しさん
2019/08/30(金) 07:10:25.46ID:N+Bub+CM >>228
自然数を対象とします。なので0は対象外。
自然数を対象とします。なので0は対象外。
232デフォルトの名無しさん
2019/08/30(金) 10:00:13.13ID:/ZgOmfmJ >>228 Ruby
p (1...9).flat_map{|i| (1..9).map{|j| j * (10**i - 1) / 9}}
# => [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99,
111, 222, 333, 444, 555, 666, 777, 888, 999, 1111, 2222, 3333,
4444, 5555, 6666, 7777, 8888, 9999, 11111, 22222, 33333, 44444,
55555, 66666, 77777, 88888, 99999, 111111, 222222, 333333,
444444, 555555, 666666, 777777, 888888, 999999, 1111111,
2222222, 3333333, 4444444, 5555555, 6666666, 7777777, 8888888,
9999999, 11111111, 22222222, 33333333, 44444444, 55555555,
66666666, 77777777, 88888888, 99999999]
p (1...9).flat_map{|i| (1..9).map{|j| j * (10**i - 1) / 9}}
# => [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99,
111, 222, 333, 444, 555, 666, 777, 888, 999, 1111, 2222, 3333,
4444, 5555, 6666, 7777, 8888, 9999, 11111, 22222, 33333, 44444,
55555, 66666, 77777, 88888, 99999, 111111, 222222, 333333,
444444, 555555, 666666, 777777, 888888, 999999, 1111111,
2222222, 3333333, 4444444, 5555555, 6666666, 7777777, 8888888,
9999999, 11111111, 22222222, 33333333, 44444444, 55555555,
66666666, 77777777, 88888888, 99999999]
233デフォルトの名無しさん
2019/08/30(金) 10:54:33.08ID:TOyFnU58234デフォルトの名無しさん
2019/08/30(金) 11:37:28.31ID:Kz4M8rdT >>233
評価。
評価。
235デフォルトの名無しさん
2019/08/30(金) 12:26:06.17ID:VkI78Ia/ >>228
同じ数字でできている数って?どういう意味?
同じ数字でできている数って?どういう意味?
236デフォルトの名無しさん
2019/08/30(金) 12:27:00.95ID:VkI78Ia/ あ、わかった。ごめん。
237デフォルトの名無しさん
2019/08/30(金) 13:32:59.48ID:Tn7+4gKU >>228 Pharo/Squeak Smalltalk
(1 to: 8) gather: [:n | (1 to: 9) collect: [:m | (Array new: n withAll: m) polynomialEval: 10]]
#(1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999)
(1 to: 8) gather: [:n | (1 to: 9) collect: [:m | (Array new: n withAll: m) polynomialEval: 10]]
#(1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999)
238デフォルトの名無しさん
2019/08/30(金) 16:39:32.33ID:BnHn7wdj 遅いけど perl5
for (1..100_000_000) { print if s{\A (.) \1* \z}{$& }x }
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999
for (1..100_000_000) { print if s{\A (.) \1* \z}{$& }x }
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999
239デフォルトの名無しさん
2019/08/30(金) 18:36:49.98ID:9N6Bd3Tw >>91
Haskell
main = mapM_ (print.only)
[
[1,1,1,1,2,2,2,3,3,4],
[1,2,3,4,5,5,4,3,2,1],
[3,1,4,1,5,9,2,6,5,3,5]
]
only ns = f [xs | xs <- (group.sort) ns, length xs == 1]
where
f [] = -1
f ([x]:_) = x
ワンライナーも出来るけど、何やってるか読み取り辛い。
only ns = if lst == [] then -1 else (head.head) lst where lst = [xs | xs <- (group.sort) ns, length xs == 1]
Haskell
main = mapM_ (print.only)
[
[1,1,1,1,2,2,2,3,3,4],
[1,2,3,4,5,5,4,3,2,1],
[3,1,4,1,5,9,2,6,5,3,5]
]
only ns = f [xs | xs <- (group.sort) ns, length xs == 1]
where
f [] = -1
f ([x]:_) = x
ワンライナーも出来るけど、何やってるか読み取り辛い。
only ns = if lst == [] then -1 else (head.head) lst where lst = [xs | xs <- (group.sort) ns, length xs == 1]
240デフォルトの名無しさん
2019/08/30(金) 19:34:06.70ID:9dkB4daP >>228
あほ
あほ
241デフォルトの名無しさん
2019/08/30(金) 23:12:37.99ID:aECV+bPz >>228 Perl5
@s = map{$a=$_; map{$_ x $a} 1..9} 1..8;
print "@s";
実行;
~ $ perl 15_228.pl
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333
444 555 666 777 888 999 1111 2222 3333 4444 5555 6666
7777 8888 9999 11111 22222 33333 44444 55555 66666 77777
88888 99999 111111 222222 333333 444444 555555 666666 777777
888888 999999 1111111 2222222 3333333 4444444 5555555 6666666
7777777 8888888 9999999 11111111 22222222 33333333 44444444
55555555 66666666 77777777 88888888 99999999
@s = map{$a=$_; map{$_ x $a} 1..9} 1..8;
print "@s";
実行;
~ $ perl 15_228.pl
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333
444 555 666 777 888 999 1111 2222 3333 4444 5555 6666
7777 8888 9999 11111 22222 33333 44444 55555 66666 77777
88888 99999 111111 222222 333333 444444 555555 666666 777777
888888 999999 1111111 2222222 3333333 4444444 5555555 6666666
7777777 8888888 9999999 11111111 22222222 33333333 44444444
55555555 66666666 77777777 88888888 99999999
242デフォルトの名無しさん
2019/08/30(金) 23:55:50.54ID:olp7cGEF243デフォルトの名無しさん
2019/08/31(土) 05:23:58.92ID:aUqRNM/Y a = 0
for i = 1, 8 do
a = a * 10 + 1
for j = a, a * 9, a do
print(j)
end
end
>>228 Lua
for i = 1, 8 do
a = a * 10 + 1
for j = a, a * 9, a do
print(j)
end
end
>>228 Lua
244デフォルトの名無しさん
2019/08/31(土) 08:18:15.37ID:rAMLyuja >>228
Haskell
import Data.List
main = (print.sort.concat) [[(sum.take a) [x * 10 ^ y | y <- [0..9]] | x <- [1..9]]| a <- [1..8]]
Haskell
import Data.List
main = (print.sort.concat) [[(sum.take a) [x * 10 ^ y | y <- [0..9]] | x <- [1..9]]| a <- [1..8]]
245デフォルトの名無しさん
2019/08/31(土) 08:45:29.92ID:h26kuCJS246デフォルトの名無しさん
2019/08/31(土) 10:03:16.75ID:4OmVCRqb time perl -e 'for (1..100_000_000) { print if s{\A (.) \1* \z}{$& }x }'
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999
real 1m30.031s
user 1m29.046s
sys 0m0.093s
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999
real 1m30.031s
user 1m29.046s
sys 0m0.093s
247デフォルトの名無しさん
2019/08/31(土) 10:56:28.19ID:Z8IDlpBx >>245 Pharo/Squeak Smalltalk
| time ans |
time := [ans := (1 to: 100000000) select: [:n | n asString asSet size = 1]] timeToRun.
^{time. ans}
"Core m3-8100Y => an Array(0:00:02:55.58 #(1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111
222 333 444 555 666 777 888 999 1111 2222 3333 4444 5555 6666 7777 8888 9999 11111
22222 33333 44444 55555 66666 77777 88888 99999 111111 222222 333333 444444 555555
666666 777777 888888 999999 1111111 2222222 3333333 4444444 5555555 6666666 7777777
8888888 9999999 11111111 22222222 33333333 44444444 55555555 66666666 77777777
88888888 99999999)) "
| time ans |
time := [ans := (1 to: 100000000) select: [:n | n asString asSet size = 1]] timeToRun.
^{time. ans}
"Core m3-8100Y => an Array(0:00:02:55.58 #(1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111
222 333 444 555 666 777 888 999 1111 2222 3333 4444 5555 6666 7777 8888 9999 11111
22222 33333 44444 55555 66666 77777 88888 99999 111111 222222 333333 444444 555555
666666 777777 888888 999999 1111111 2222222 3333333 4444444 5555555 6666666 7777777
8888888 9999999 11111111 22222222 33333333 44444444 55555555 66666666 77777777
88888888 99999999)) "
248デフォルトの名無しさん
2019/08/31(土) 10:58:35.47ID:8/I1hpDH >>245 Perl5、1千万以下、CPU: Core i5 M520@2.4GHz
use Time::HiRes qw(gettimeofday tv_interval);
$t0 = [gettimeofday];
for (1..1e8) {
push @s, $_ if /^(.)\1*$/;
}
$elapse = tv_interval($t0, [gettimeofday]);
printf "@s\n%.3f[s]\n", $elapse;
実行結果
~ $ perl 15_245.pl
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999
49.732[s]
use Time::HiRes qw(gettimeofday tv_interval);
$t0 = [gettimeofday];
for (1..1e8) {
push @s, $_ if /^(.)\1*$/;
}
$elapse = tv_interval($t0, [gettimeofday]);
printf "@s\n%.3f[s]\n", $elapse;
実行結果
~ $ perl 15_245.pl
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999
49.732[s]
249デフォルトの名無しさん
2019/08/31(土) 11:35:18.32ID:weQXwxl4 >>245 Java
https://ideone.com/0ddTLO
Pentium G6950@2.8GHz
整数演算: 1,073ms
正規表現: 46,450ms
Ideone
整数演算: 495ms
正規表現: 2,592ms (これだけ1千万以下で計測)
https://ideone.com/0ddTLO
Pentium G6950@2.8GHz
整数演算: 1,073ms
正規表現: 46,450ms
Ideone
整数演算: 495ms
正規表現: 2,592ms (これだけ1千万以下で計測)
250デフォルトの名無しさん
2019/08/31(土) 12:36:03.19ID:E0AleLqQ >>120
Haskell
main = map (\n -> f n 0) [15,93,77,123]
f n a | n < 10 = (n,a)
f n a = f (product [read [x] | x <- show n]) (a + 1)
Haskell
main = map (\n -> f n 0) [15,93,77,123]
f n a | n < 10 = (n,a)
f n a = f (product [read [x] | x <- show n]) (a + 1)
251デフォルトの名無しさん
2019/08/31(土) 12:47:22.94ID:8/I1hpDH >>245 c99、 Core i5 M520@2.4GHz
#include <time.h>
#include <math.h>
#include <stdio.h>
int main() {
int b = 1, n = 1;
clock_t s = clock();
for (int e = 1; e <= 9; e++) {
int j = pow(10, e) - pow(10, e - 1);
for (int i = 1; i <= j; i++) {
if (n == (n / b) * b)
printf("%d ", n);
n++;
}
b *= 10; b += 1;
}
clock_t e = clock();
printf("\n%.3f[s]\n", (double)(e - s)/1e6);
}
実行結果
$ cc -std=c99 -O2 15_245.c -lm
$ time ./a.out
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777
888 999 1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333
44444 55555 66666 77777 88888 99999 111111 222222 333333 444444 555555
666666 777777 888888 999999 1111111 2222222 3333333 4444444 5555555
6666666 7777777 8888888 9999999 11111111 22222222 33333333 44444444
55555555 66666666 77777777 88888888 99999999 111111111 222222222
333333333 444444444 555555555 666666666 777777777 888888888 999999999
3.890[s]
#include <time.h>
#include <math.h>
#include <stdio.h>
int main() {
int b = 1, n = 1;
clock_t s = clock();
for (int e = 1; e <= 9; e++) {
int j = pow(10, e) - pow(10, e - 1);
for (int i = 1; i <= j; i++) {
if (n == (n / b) * b)
printf("%d ", n);
n++;
}
b *= 10; b += 1;
}
clock_t e = clock();
printf("\n%.3f[s]\n", (double)(e - s)/1e6);
}
実行結果
$ cc -std=c99 -O2 15_245.c -lm
$ time ./a.out
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777
888 999 1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333
44444 55555 66666 77777 88888 99999 111111 222222 333333 444444 555555
666666 777777 888888 999999 1111111 2222222 3333333 4444444 5555555
6666666 7777777 8888888 9999999 11111111 22222222 33333333 44444444
55555555 66666666 77777777 88888888 99999999 111111111 222222222
333333333 444444444 555555555 666666666 777777777 888888888 999999999
3.890[s]
252デフォルトの名無しさん
2019/08/31(土) 13:39:39.88ID:u8Io5isX253デフォルトの名無しさん
2019/08/31(土) 13:43:00.43ID:weQXwxl4254デフォルトの名無しさん
2019/08/31(土) 13:44:48.13ID:u8Io5isX ぶー!!!
・・・これが・・・!!!・・・これこそが・・・!!!
・・・だ・・・!!!・・・だそく・・・!!!!
・・・これが・・・!!!・・・これこそが・・・!!!
・・・だ・・・!!!・・・だそく・・・!!!!
255デフォルトの名無しさん
2019/08/31(土) 13:45:31.08ID:u8Io5isX 間に合った。 >>253 サンキュー。
256デフォルトの名無しさん
2019/08/31(土) 15:12:57.30ID:RMcMP/J8 >>245
Haskell ナイーブな方
Atomコア(Celeron N3050@1.6GHz)
1億以下で約31秒
main = print [x | x <- [1..100000000], let (s:ss) = show x, all (== s) ss]
time ./zorome
real 0m31.426s
user 0m31.123s
sys 0m0.248s
ナイーブな方は探すアルゴリズムで、最適化の方(>>244)は数列を作るアルゴリズム。
(1から99999999までの(1桁から8桁までの)ゾロ目を作る)
[
[[1],[1,10],[1,10,100]...],
[[2],[2,20],[2,20,200]...],
...,
[[9],[9,90],[9,90,900]...]]
]
って言う数列を生成して、合計出してフラットにしてソートしてるだけだよ。
(他の言語のも多少の手順の違い(フラット化とソートしないで「合計出した時点で表示」を縦方向に繰り返したり)はあるけど、基本のアルゴリズムとしては同じ)
Haskell ナイーブな方
Atomコア(Celeron N3050@1.6GHz)
1億以下で約31秒
main = print [x | x <- [1..100000000], let (s:ss) = show x, all (== s) ss]
time ./zorome
real 0m31.426s
user 0m31.123s
sys 0m0.248s
ナイーブな方は探すアルゴリズムで、最適化の方(>>244)は数列を作るアルゴリズム。
(1から99999999までの(1桁から8桁までの)ゾロ目を作る)
[
[[1],[1,10],[1,10,100]...],
[[2],[2,20],[2,20,200]...],
...,
[[9],[9,90],[9,90,900]...]]
]
って言う数列を生成して、合計出してフラットにしてソートしてるだけだよ。
(他の言語のも多少の手順の違い(フラット化とソートしないで「合計出した時点で表示」を縦方向に繰り返したり)はあるけど、基本のアルゴリズムとしては同じ)
257デフォルトの名無しさん
2019/09/01(日) 18:40:58.06ID:lGQcNl0x お題: nバイトのデータxをビット列にして出力しなさい
258デフォルトの名無しさん
2019/09/01(日) 19:01:25.42ID:KcbCTlPY259デフォルトの名無しさん
2019/09/01(日) 19:32:51.46ID:VqTK6sxa >>257 Perl5
$n = 24;
@a = map{int rand 255} 1..$n;;
print "@a\n";
@b = map{sprintf'%08b', $_} @a;
$" = '';
print "@b\n
実行例
~ $ perl 15_257.pl
155 105 94 58 85 82 124 6 242 94 119 175 69 205 95 25 79 154 237 248 169 254 46 93
100110110110100101011110001110100101010101010010011111000000011011110010010111100111011110101111010001011100110101011111000110010100111110011010111011011111100010101001111111100010111001011101
$n = 24;
@a = map{int rand 255} 1..$n;;
print "@a\n";
@b = map{sprintf'%08b', $_} @a;
$" = '';
print "@b\n
実行例
~ $ perl 15_257.pl
155 105 94 58 85 82 124 6 242 94 119 175 69 205 95 25 79 154 237 248 169 254 46 93
100110110110100101011110001110100101010101010010011111000000011011110010010111100111011110101111010001011100110101011111000110010100111110011010111011011111100010101001111111100010111001011101
260デフォルトの名無しさん
2019/09/01(日) 19:42:33.97ID:931SdLmv261デフォルトの名無しさん
2019/09/01(日) 20:53:53.13ID:kwhZ+eUh >>259
rand 255 ⇒ 256 の方がヨカタ
rand 255 ⇒ 256 の方がヨカタ
262デフォルトの名無しさん
2019/09/01(日) 21:45:06.97ID:CELgatxy263デフォルトの名無しさん
2019/09/02(月) 02:56:48.97ID:oioFkvSQ >>120
>>125 みたいに、1桁になるまでの変化の様子もリストで渡すようにした。
Haskell
main = mapM put [4,15,93,77,123,277777788888899]
put x = (putStrLn.concat) [show x," -> ",show a,
" loop and value is ",show n,". list = ",show l]
where (l,a,n) = f [] 0 x
f l a n| n < 10 = (reverse l,a,n)
f l a n = f (m:l) (a + 1) m
where m = product [read [x] | x <- show n]
>>125 みたいに、1桁になるまでの変化の様子もリストで渡すようにした。
Haskell
main = mapM put [4,15,93,77,123,277777788888899]
put x = (putStrLn.concat) [show x," -> ",show a,
" loop and value is ",show n,". list = ",show l]
where (l,a,n) = f [] 0 x
f l a n| n < 10 = (reverse l,a,n)
f l a n = f (m:l) (a + 1) m
where m = product [read [x] | x <- show n]
264デフォルトの名無しさん
2019/09/02(月) 02:57:17.93ID:oioFkvSQ out:
4 -> 0 loop and value is 4. list = []
15 -> 1 loop and value is 5. list = [5]
93 -> 3 loop and value is 4. list = [27,14,4]
77 -> 4 loop and value is 8. list = [49,36,18,8]
123 -> 1 loop and value is 6. list = [6]
277777788888899 -> 11 loop and value is 0. list = [4996238671872,438939648,4478976,338688,27648,2688,768,336,54,20,0]
4 -> 0 loop and value is 4. list = []
15 -> 1 loop and value is 5. list = [5]
93 -> 3 loop and value is 4. list = [27,14,4]
77 -> 4 loop and value is 8. list = [49,36,18,8]
123 -> 1 loop and value is 6. list = [6]
277777788888899 -> 11 loop and value is 0. list = [4996238671872,438939648,4478976,338688,27648,2688,768,336,54,20,0]
265デフォルトの名無しさん
2019/09/02(月) 06:37:20.55ID:6t6D41pn >>257 Ruby
n = 16
x = Array.new(n){rand(0x100)}
b = n.times.reduce(0){|s, i| x[~i] * 0x100**i + s}
puts "%p => %0#{n}b" % [x, b]
# => [31, 95, 43, 108, 105, 54, 1, 122, 100, 48, 137, 121, 131, 188, 105, 244] =>
11111010111110010101101101100011010010011011000000001011110100110010000110000100010010111100110000011101111000110100111110100
n = 16
x = Array.new(n){rand(0x100)}
b = n.times.reduce(0){|s, i| x[~i] * 0x100**i + s}
puts "%p => %0#{n}b" % [x, b]
# => [31, 95, 43, 108, 105, 54, 1, 122, 100, 48, 137, 121, 131, 188, 105, 244] =>
11111010111110010101101101100011010010011011000000001011110100110010000110000100010010111100110000011101111000110100111110100
266デフォルトの名無しさん
2019/09/02(月) 06:39:28.02ID:6t6D41pn typo
puts "%p => %0#{n * 8}b" % [x, b]
# => [31, 95, 43, 108, 105, 54, 1, 122, 100, 48, 137, 121, 131, 188, 105, 244] =>
00011111010111110010101101101100011010010011011000000001011110100110010000110000100010010111100110000011101111000110100111110
100
puts "%p => %0#{n * 8}b" % [x, b]
# => [31, 95, 43, 108, 105, 54, 1, 122, 100, 48, 137, 121, 131, 188, 105, 244] =>
00011111010111110010101101101100011010010011011000000001011110100110010000110000100010010111100110000011101111000110100111110
100
267デフォルトの名無しさん
2019/09/02(月) 12:10:04.08ID:rT9Zixkt >>233
勉強になりましたw
勉強になりましたw
268デフォルトの名無しさん
2019/09/02(月) 12:49:28.87ID:YYsNPCXj269デフォルトの名無しさん
2019/09/02(月) 15:10:33.79ID:rT9Zixkt 全滅エンドか!?
270デフォルトの名無しさん
2019/09/02(月) 21:31:28.92ID:qij/0ceW271デフォルトの名無しさん
2019/09/03(火) 02:08:35.68ID:FeqFVaAA >>228
aa=$(echo ^{1..9}\\\{1,\\\}\$\\\| |sed -e "s/ //g; s/\\\|$//;"); seq 1 $((10**8)) |grep -e "$aa"
aa=$(echo ^{1..9}\\\{1,\\\}\$\\\| |sed -e "s/ //g; s/\\\|$//;"); seq 1 $((10**8)) |grep -e "$aa"
272デフォルトの名無しさん
2019/09/03(火) 03:13:14.41ID:4SpqHsfM 数学的な解き方わからず
このx>=3の自然数解を見つける
a>b、 (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z
このx>=3の自然数解を見つける
a>b、 (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z
273272
2019/09/03(火) 05:28:10.06ID:VYSmTHvF a=2 b=1で 3^x + 4^y = 5^z
は解無し
は解無し
274デフォルトの名無しさん
2019/09/03(火) 08:27:27.03ID:Sk67xQLY a b は実数? 正の整数?
275デフォルトの名無しさん
2019/09/03(火) 08:38:58.69ID:VYSmTHvF 出てくる文字、a b x y z はすべて自然数、正の整数です
276デフォルトの名無しさん
2019/09/03(火) 08:39:49.44ID:03sYx3ae a > b > 0 なの?
0 > a なら意味ないんだけど
出題者が問題をそもそも理解してなさそう
0 > a なら意味ないんだけど
出題者が問題をそもそも理解してなさそう
277デフォルトの名無しさん
2019/09/03(火) 08:44:26.60ID:VYSmTHvF すべて1以上の整数として、
x>=3、 a>b、 (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z
を満たすものを見つける
そこでa=2 b=1の場合は解無しがわかっていて
任意のa,bに対して、(a^2 - b^2)^2 + (2ab)^2 = (a^2 + b^2)^2 が成り立つことも判っています
x>=3、 a>b、 (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z
を満たすものを見つける
そこでa=2 b=1の場合は解無しがわかっていて
任意のa,bに対して、(a^2 - b^2)^2 + (2ab)^2 = (a^2 + b^2)^2 が成り立つことも判っています
278デフォルトの名無しさん
2019/09/03(火) 08:57:07.87ID:VYSmTHvF 指数2だと必ず成立するのはこれだからです
指数3以上で解けるのはどれか、あるかです
ピタゴラス数は無数にある
中学校の数学で習う定理に、「三平方の定理」或いは「ピタゴラスの定理」と呼ばれるものがある。
a^2 + b^2 = c^2 を満たす正の整数の組 (a, b, c) のことを、ピタゴラス数と呼ぶ。
例えば、(3, 4, 5) や (5, 12, 13) などは有名なピタゴラス数である。
ピタゴラス数が無限個存在する
任意の原始的ピタゴラス数 が (|m^2 ? n^2|, 2mn, m^2 + n^2) の形で表せることを示す。
https://nue2004.info/knowledge/knowledge97.htm
指数3以上で解けるのはどれか、あるかです
ピタゴラス数は無数にある
中学校の数学で習う定理に、「三平方の定理」或いは「ピタゴラスの定理」と呼ばれるものがある。
a^2 + b^2 = c^2 を満たす正の整数の組 (a, b, c) のことを、ピタゴラス数と呼ぶ。
例えば、(3, 4, 5) や (5, 12, 13) などは有名なピタゴラス数である。
ピタゴラス数が無限個存在する
任意の原始的ピタゴラス数 が (|m^2 ? n^2|, 2mn, m^2 + n^2) の形で表せることを示す。
https://nue2004.info/knowledge/knowledge97.htm
279デフォルトの名無しさん
2019/09/03(火) 09:27:31.81ID:fMS/rXUz \ / .::::::::::::::::::::::::;;:;;::,ッ、::::::::: ) く 数 す
\ l ,ッィrj,rf'"'"'" lミ::::::: く れ 学 ま
Y ,!ミ::::::: ヽ な 野 な
`ヽ、 | くミ:::::::: ノ い 郎 い
|、__ ャー--_ニゞ `i::::,rく か は
``''ー- ゝ、'l  ゙̄´彑,ヾ }::;! ,ヘ.) ! 帰
゙ソ """"´` 〉 L_ っ
/ i , /| て r
≡=- 〈´ ,,.._ i 't-'゙ | ,へ ,r┘
,、yx=''" `ー{゙ _, -、 ; l レ' ヽr、⌒ヽ'
゙、`--─゙ /! `、
_,,、- ゙、 ー'' / ; `、
-''"_,,、-''" ゙、 /;;' ,' / 、\
-''" / `ー─''ぐ;;;;' ,' ノ
// / ヾ_、=ニ゙
\ l ,ッィrj,rf'"'"'" lミ::::::: く れ 学 ま
Y ,!ミ::::::: ヽ な 野 な
`ヽ、 | くミ:::::::: ノ い 郎 い
|、__ ャー--_ニゞ `i::::,rく か は
``''ー- ゝ、'l  ゙̄´彑,ヾ }::;! ,ヘ.) ! 帰
゙ソ """"´` 〉 L_ っ
/ i , /| て r
≡=- 〈´ ,,.._ i 't-'゙ | ,へ ,r┘
,、yx=''" `ー{゙ _, -、 ; l レ' ヽr、⌒ヽ'
゙、`--─゙ /! `、
_,,、- ゙、 ー'' / ; `、
-''"_,,、-''" ゙、 /;;' ,' / 、\
-''" / `ー─''ぐ;;;;' ,' ノ
// / ヾ_、=ニ゙
280デフォルトの名無しさん
2019/09/03(火) 13:20:54.78ID:SA/JpX4x どう考えてもスレチだよなぁ
必要なのはプログラムじゃなく紙と鉛筆っぽいし
必要なのはプログラムじゃなく紙と鉛筆っぽいし
281デフォルトの名無しさん
2019/09/03(火) 13:43:33.95ID:WMTa8Qij このスレは数学嫌いな奴多いなぁ
べつにちょっとぐらいいいじゃないか
べつにちょっとぐらいいいじゃないか
282デフォルトの名無しさん
2019/09/03(火) 13:52:03.24ID:/IQ7x87c むしろこのスレは本当にコンピューター使わないと解けないような
パズル問題とかの方が解答つかないことが多い
パズル問題とかの方が解答つかないことが多い
283デフォルトの名無しさん
2019/09/03(火) 14:53:42.89ID:R1k47NOJ 掛け算があるので加速的に左の解が増えるので追い付かなくなる予感。
284デフォルトの名無しさん
2019/09/03(火) 15:14:05.99ID:R1k47NOJ285デフォルトの名無しさん
2019/09/03(火) 15:15:29.58ID:R1k47NOJ (a^2 - b^2)^x + (2ab)^y=0
(a^2 + b^2)^z=0
の連立方程式解くとよさそうに見えるが。
解くのむずくて俺は無理。
(a^2 + b^2)^z=0
の連立方程式解くとよさそうに見えるが。
解くのむずくて俺は無理。
286デフォルトの名無しさん
2019/09/03(火) 15:28:15.62ID:03sYx3ae >>285
何かの冗談? それじゃ明らかに解無しなんですが
何かの冗談? それじゃ明らかに解無しなんですが
287デフォルトの名無しさん
2019/09/03(火) 15:31:15.82ID:FbgAnO5f >>257 Ruby
N = 10
X = Random.new.bytes(N)
puts X.unpack('C*').map{|c| '%02X' % c}.join(' '), X.unpack('B*')
結果
82 30 D4 E1 07 32 27 3E A2 E5
10000010001100001101010011100001000001110011001000100111001111101010001011100101
N = 10
X = Random.new.bytes(N)
puts X.unpack('C*').map{|c| '%02X' % c}.join(' '), X.unpack('B*')
結果
82 30 D4 E1 07 32 27 3E A2 E5
10000010001100001101010011100001000001110011001000100111001111101010001011100101
288デフォルトの名無しさん
2019/09/03(火) 15:38:54.45ID:R1k47NOJ289デフォルトの名無しさん
2019/09/03(火) 15:40:16.69ID:03sYx3ae290デフォルトの名無しさん
2019/09/03(火) 15:45:42.09ID:R1k47NOJ 数学ダメなのでセオリー知らないんだけど。マジ解らん。
正直すまんかった。
正直すまんかった。
291デフォルトの名無しさん
2019/09/03(火) 15:47:50.03ID:R1k47NOJ292デフォルトの名無しさん
2019/09/03(火) 15:50:06.71ID:gHL/qcPl293デフォルトの名無しさん
2019/09/03(火) 15:52:04.84ID:R1k47NOJ294デフォルトの名無しさん
2019/09/03(火) 15:56:44.07ID:gHL/qcPl doubleの演算誤差出てるなwwww
295デフォルトの名無しさん
2019/09/03(火) 15:57:29.86ID:R1k47NOJ >>293 直しました。
大きな数で発見できているかな?
大きな数で発見できているかな?
296デフォルトの名無しさん
2019/09/03(火) 16:00:10.37ID:R1k47NOJ いや、精度飛んでて、うまく測れてないな。
297デフォルトの名無しさん
2019/09/03(火) 16:01:59.48ID:gHL/qcPl 演算誤差ではないか 誤差で=になるレベルじゃない
AとB出力してみ?
AとB出力してみ?
298デフォルトの名無しさん
2019/09/03(火) 16:02:55.16ID:R1k47NOJ 多倍長無いと証明には至らないな。
というわけで今回は抜けるわ。
乱文申し訳ない。
というわけで今回は抜けるわ。
乱文申し訳ない。
299デフォルトの名無しさん
2019/09/03(火) 16:03:35.69ID:gHL/qcPl あ、doubleからstd::size_tになってたw
300デフォルトの名無しさん
2019/09/03(火) 16:10:08.37ID:R1k47NOJ 色々弄ってみたけど、これで凍結しておくわ。
すまんかった。
すまんかった。
301デフォルトの名無しさん
2019/09/03(火) 16:42:54.68ID:03sYx3ae302デフォルトの名無しさん
2019/09/03(火) 16:46:54.03ID:R1k47NOJ303デフォルトの名無しさん
2019/09/03(火) 21:38:14.04ID:MpIMqTuu304デフォルトの名無しさん
2019/09/03(火) 22:12:17.83ID:VYSmTHvF x=y=z=2以外の解があるか?
すべて自然数、変数 a>b、 (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z の解
答えしらず。 a=2 b=1だけはいまのところ他にないを証明可能
すべて自然数、変数 a>b、 (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z の解
答えしらず。 a=2 b=1だけはいまのところ他にないを証明可能
305デフォルトの名無しさん
2019/09/03(火) 22:33:37.84ID:dCTs9gWx306デフォルトの名無しさん
2019/09/03(火) 22:40:59.77ID:MpIMqTuu307デフォルトの名無しさん
2019/09/04(水) 00:41:31.51ID:5HyNYB53 304は3以上を仮定してない、すべて自然数
308デフォルトの名無しさん
2019/09/04(水) 02:57:47.93ID:5U+WeLbN あーこりゃ致命的に頭悪い奴か
数学も日本語も通じないとは
数学も日本語も通じないとは
309デフォルトの名無しさん
2019/09/04(水) 07:57:08.75ID:FC7xGJ7s 定理を発見したら著作権で保護されるのかな。
310デフォルトの名無しさん
2019/09/04(水) 08:46:01.17ID:HTJbgiFI 日本数学会に提出する前に
大学の教授にみてもらわないと
大学の教授にみてもらわないと
311デフォルトの名無しさん
2019/09/04(水) 09:59:12.24ID:bj6rvw0v 次スレは数学禁止ってスレタイに入れないとな
312デフォルトの名無しさん
2019/09/04(水) 10:54:57.98ID:wUnebE5/ >>310
そして手柄を横取りされる定期
そして手柄を横取りされる定期
313デフォルトの名無しさん
2019/09/04(水) 11:24:41.75ID:P7o6e2y0 お題: 平面上にいくつかの円 (内部も含む円) がある
それが重なったり重ならなかったりしていて、最も重なっている箇所ではN個の円が重なっているとする
このとき、各円の座標と半径が与えられた場合にNを返すプログラムを書け
それが重なったり重ならなかったりしていて、最も重なっている箇所ではN個の円が重なっているとする
このとき、各円の座標と半径が与えられた場合にNを返すプログラムを書け
314デフォルトの名無しさん
2019/09/04(水) 13:52:37.01ID:aB3hMBX/315デフォルトの名無しさん
2019/09/04(水) 14:06:48.93ID:HTJbgiFI それ円周率パイとネイピア数のe の積が
N個の円の重なる唯一の x座標とy座標の円達を与えられて返すの辛くないか?
N個の円の重なる唯一の x座標とy座標の円達を与えられて返すの辛くないか?
316デフォルトの名無しさん
2019/09/04(水) 14:13:24.75ID:yXyTPmQk317デフォルトの名無しさん
2019/09/04(水) 14:29:48.47ID:HTJbgiFI 例として313が N=4 で、それを与える円4つが
(x-ePi-1)^2+(y-ePi)^2=1
(x-ePi+1)^2+(y-ePi)^2=1
(x-ePi )^2+(y-ePi-1)^2=1
(x-ePi )^2+(y-ePi+1)^2=1
だったら大変かもしれない?
(x-ePi-1)^2+(y-ePi)^2=1
(x-ePi+1)^2+(y-ePi)^2=1
(x-ePi )^2+(y-ePi-1)^2=1
(x-ePi )^2+(y-ePi+1)^2=1
だったら大変かもしれない?
318デフォルトの名無しさん
2019/09/04(水) 17:19:01.11ID:reYoOADS319デフォルトの名無しさん
2019/09/04(水) 18:34:12.43ID:6EOP5CCF320デフォルトの名無しさん
2019/09/04(水) 18:42:19.25ID:8qjE+V3b321デフォルトの名無しさん
2019/09/04(水) 18:49:05.83ID:A7beDSD/ 5chはペアプレイではなくマルチプレイということをお忘れなく。
322デフォルトの名無しさん
2019/09/04(水) 19:10:06.78ID:5HyNYB53 >>318
省いててわかりずらいかもしれないがアウトライン。一般化はできないだろう解き方。
3^x + 4^y = 5^z の自然数解は(2,2,2)唯一つ
mod 3で1 ≡ (-1)^z、 z偶数が必要
z=2wとおくと 3^x = (5^w + 2^y) (5^w - 2^y)
簡単な考察で右辺の後項が3の倍数ならば前項は3の倍数になりえないので後項=1、前項=3^xが必要
w偶数とすると結果2式をmod 3で比較して不成立、w奇数が必要
y>=3ならばmod 8で5 ≡ 3^x、任意のxで不成立
y=1ならば解なし
省いててわかりずらいかもしれないがアウトライン。一般化はできないだろう解き方。
3^x + 4^y = 5^z の自然数解は(2,2,2)唯一つ
mod 3で1 ≡ (-1)^z、 z偶数が必要
z=2wとおくと 3^x = (5^w + 2^y) (5^w - 2^y)
簡単な考察で右辺の後項が3の倍数ならば前項は3の倍数になりえないので後項=1、前項=3^xが必要
w偶数とすると結果2式をmod 3で比較して不成立、w奇数が必要
y>=3ならばmod 8で5 ≡ 3^x、任意のxで不成立
y=1ならば解なし
323デフォルトの名無しさん
2019/09/04(水) 19:23:20.13ID:5HyNYB53 かいてから考えたら間違ってるところがでてきた
ここまではいいとして、これあってないな
> y>=3ならばmod 8で5 ≡ 3^x、任意のxで不成立
ここまではいいとして、これあってないな
> y>=3ならばmod 8で5 ≡ 3^x、任意のxで不成立
324デフォルトの名無しさん
2019/09/04(水) 19:26:32.69ID:5HyNYB53 いやあってた
5^2 ≡ 1 (mod 8)になってしまうとおもったら
w奇数だから、5^3 ≡ 5 (mod 8)だった
5しかでない
5^2 ≡ 1 (mod 8)になってしまうとおもったら
w奇数だから、5^3 ≡ 5 (mod 8)だった
5しかでない
325デフォルトの名無しさん
2019/09/04(水) 20:01:35.58ID:P7o6e2y0326デフォルトの名無しさん
2019/09/04(水) 22:19:56.37ID:bGWgoiea 少なくとも自分はAOJで見た記憶がある
たしか高校生向けのコンテストの問題だったはず…
たしか高校生向けのコンテストの問題だったはず…
327デフォルトの名無しさん
2019/09/04(水) 22:31:18.96ID:A7beDSD/328デフォルトの名無しさん
2019/09/04(水) 22:47:39.03ID:5HyNYB53 自作かとおもってたがWikipediaにほぼおなじのあった。解は指数2に限るという。
のってて解けてないとすると難問か
ピタゴラスの定理 - Wikipedia
Jesmanowicz 予想
1956年に Jesmanowicz が以下の予想を提出した。
(a, b, c) を原始ピタゴラス数、n を自然数とする。x, y, z が
(an)^x + (bn)^y = (cn)^z
で自然数解を持つには、x=y=z=2 であることが必要である。
のってて解けてないとすると難問か
ピタゴラスの定理 - Wikipedia
Jesmanowicz 予想
1956年に Jesmanowicz が以下の予想を提出した。
(a, b, c) を原始ピタゴラス数、n を自然数とする。x, y, z が
(an)^x + (bn)^y = (cn)^z
で自然数解を持つには、x=y=z=2 であることが必要である。
329デフォルトの名無しさん
2019/09/04(水) 22:56:59.22ID:5HyNYB53 Jesmanowicz予想で検索
KAKEN 研究期間 2011 ? 2012 不定方程式におけるTerai予想とJesmanowicz予想
まず始めに、Terai予想のケース(1)のP=q=r=2の場合(Jesmanowicz予想)について考察した。
藤田育嗣氏(日本大学)との共同研究で、Jesmanowicz予想を三つ組みa,b,cがある合同条件を満たす場合に証明した。
Pingzhi Yuan氏(華南師範大学)との共同研究では、申請者の以前の研究結果を大幅に拡張することが出来た。
次に、Terai予想のケース(1)の一般的な場合について考察した。
最近、Florian Luca氏(メキシコ自治国立大学モレリア数学研究所)が、以前の研究の多くを(本質的に)一般化する結果を与えた。
その手法は、Baker理論とそのp進版の理論が有効に用いられていた。しかし、その結果は、不完全な点があり、申請者はその部分を補う計算を行なった。
さらに、申請者はTerai予想の類似問題を提起した。それは、
2以上の自然数p,q,rに対して、a^p+b^q=c^rを満たすa,b,cに対して、
指数型ディオファントス方程式c^x+b^y=a^zは、q=r=2かつc=b+1のときに限り自然数解x,y,zを持ち、
そのときにただ一つの自然数解(x,y,z)=(1,1,p)を持つである。
申請者は、Terai予想で扱われている三つ組みa,b,cについて考察を行い、
Baker理論とそのp進版の理論を用いて、いくつかの場合に予想は成立することを証明した。
特に、後半の主張である"解の一意性"を証明した。
最後に、Terai予想では扱われない三つ組みについても研究結果を得た。
まず、Alain Togbe氏(Purdue大学)との共同研究を行い、氏の以前の連続整数に関する研究を広く拡張することが出来た。
また、申請者は、三つ組みがある線形回帰数列の項として与えられる場合に方程式の解を決定した。
それによって寺井伸浩氏(足利工業大学)によって提起されたフィボナッチ数列に関する予想を解決した。
https://kaken.nii.ac.jp/grant/KAKENHI-PROJECT-11J05674/
KAKEN 研究期間 2011 ? 2012 不定方程式におけるTerai予想とJesmanowicz予想
まず始めに、Terai予想のケース(1)のP=q=r=2の場合(Jesmanowicz予想)について考察した。
藤田育嗣氏(日本大学)との共同研究で、Jesmanowicz予想を三つ組みa,b,cがある合同条件を満たす場合に証明した。
Pingzhi Yuan氏(華南師範大学)との共同研究では、申請者の以前の研究結果を大幅に拡張することが出来た。
次に、Terai予想のケース(1)の一般的な場合について考察した。
最近、Florian Luca氏(メキシコ自治国立大学モレリア数学研究所)が、以前の研究の多くを(本質的に)一般化する結果を与えた。
その手法は、Baker理論とそのp進版の理論が有効に用いられていた。しかし、その結果は、不完全な点があり、申請者はその部分を補う計算を行なった。
さらに、申請者はTerai予想の類似問題を提起した。それは、
2以上の自然数p,q,rに対して、a^p+b^q=c^rを満たすa,b,cに対して、
指数型ディオファントス方程式c^x+b^y=a^zは、q=r=2かつc=b+1のときに限り自然数解x,y,zを持ち、
そのときにただ一つの自然数解(x,y,z)=(1,1,p)を持つである。
申請者は、Terai予想で扱われている三つ組みa,b,cについて考察を行い、
Baker理論とそのp進版の理論を用いて、いくつかの場合に予想は成立することを証明した。
特に、後半の主張である"解の一意性"を証明した。
最後に、Terai予想では扱われない三つ組みについても研究結果を得た。
まず、Alain Togbe氏(Purdue大学)との共同研究を行い、氏の以前の連続整数に関する研究を広く拡張することが出来た。
また、申請者は、三つ組みがある線形回帰数列の項として与えられる場合に方程式の解を決定した。
それによって寺井伸浩氏(足利工業大学)によって提起されたフィボナッチ数列に関する予想を解決した。
https://kaken.nii.ac.jp/grant/KAKENHI-PROJECT-11J05674/
330デフォルトの名無しさん
2019/09/04(水) 23:07:59.22ID:5HyNYB53 完全解決してないが、結構解けてるらしい
早稲田大学整数論セミナーの予定 (2014年度 第5回)
タイトル: 原始ピタゴラス数に関する Jesmanowicz 予想について
アブストラクト: 1956 年, Jesmanowiczはピタゴラス数に関する指数型不定方程式
(m^2 - n^2)^x + (2mn)^y = (m^2 + n^2)^z は, ただ一つの正の整数解 (x; y; z) = (2; 2; 2) を持つことを予想した.
ただし, m > n, gcd(m; n) = 1, m ≠ n mod 2 を満たす正の整数とする.
Journal of Number Theory の論文 (2014 年) において, n = 2 とき Jesmanowicz 予想が成り立つことを証明した.
これは, 与えられた n > 1 に対し m について何も仮定せず Jesmanowicz 予想が成り立つ最初の結果である.
最先端の楕円曲線や modular formの理論から導かれる一般化された Fermat 方程式に関する結果を用いて, m に何も条件を付けずに Jesmanowicz 予想が成り立つことを証明することができた.
本講演では, これをさらに拡張して, n=2 が奇素数の冪でかつ m > 72n のときJesmanowicz予想が成り立つことを証明できたので紹介する.
これらの結果の系として, n=2 が 50 未満の奇数のとき Jesmanowicz 予想が成り立つことが容易に得られる.
https://www.waseda.jp/sem-wnt/kako/pdf2014/20140516.pdf
早稲田大学整数論セミナーの予定 (2014年度 第5回)
タイトル: 原始ピタゴラス数に関する Jesmanowicz 予想について
アブストラクト: 1956 年, Jesmanowiczはピタゴラス数に関する指数型不定方程式
(m^2 - n^2)^x + (2mn)^y = (m^2 + n^2)^z は, ただ一つの正の整数解 (x; y; z) = (2; 2; 2) を持つことを予想した.
ただし, m > n, gcd(m; n) = 1, m ≠ n mod 2 を満たす正の整数とする.
Journal of Number Theory の論文 (2014 年) において, n = 2 とき Jesmanowicz 予想が成り立つことを証明した.
これは, 与えられた n > 1 に対し m について何も仮定せず Jesmanowicz 予想が成り立つ最初の結果である.
最先端の楕円曲線や modular formの理論から導かれる一般化された Fermat 方程式に関する結果を用いて, m に何も条件を付けずに Jesmanowicz 予想が成り立つことを証明することができた.
本講演では, これをさらに拡張して, n=2 が奇素数の冪でかつ m > 72n のときJesmanowicz予想が成り立つことを証明できたので紹介する.
これらの結果の系として, n=2 が 50 未満の奇数のとき Jesmanowicz 予想が成り立つことが容易に得られる.
https://www.waseda.jp/sem-wnt/kako/pdf2014/20140516.pdf
331デフォルトの名無しさん
2019/09/04(水) 23:25:42.22ID:4CPx11+J332デフォルトの名無しさん
2019/09/05(木) 00:10:35.11ID:ymsvBiyv333デフォルトの名無しさん
2019/09/05(木) 10:41:35.98ID:jPhMORz8 置く場所の最大サイズ2000*2000くらいまでだとprocessingとかで半透明の円を重ね合わせれば一番濃いところが正解だから合ってるかどうかだいたい見て分かる
rが小数で半径が0.0001から1億くらいまでまちまちだと面倒
rが小数で半径が0.0001から1億くらいまでまちまちだと面倒
334デフォルトの名無しさん
2019/09/05(木) 10:53:13.59ID:Wm4c6P24 >>327,331-332
俺とは問題の解釈が違うようだ?
俺とは問題の解釈が違うようだ?
335デフォルトの名無しさん
2019/09/05(木) 11:32:41.41ID:JTGocygG >>334
そいつらはいつものアホやからスルーしなはれ
そいつらはいつものアホやからスルーしなはれ
336デフォルトの名無しさん
2019/09/05(木) 13:09:10.29ID:n5jm1pTY337314
2019/09/05(木) 21:33:33.48ID:Wm4c6P24 >>313 Java
https://paiza.io/projects/iamhQLuhZskbvv3lCIrj5Q
なんか思いつけたので書いた
いつもはideoneやけど、画像出力もしたくなったのでpaiza
入力データは https://mevius.5ch.net/test/read.cgi/tech/1549160513/405
https://paiza.io/projects/iamhQLuhZskbvv3lCIrj5Q
なんか思いつけたので書いた
いつもはideoneやけど、画像出力もしたくなったのでpaiza
入力データは https://mevius.5ch.net/test/read.cgi/tech/1549160513/405
338デフォルトの名無しさん
2019/09/06(金) 18:11:06.63ID:O7F8x+Ks >>337
お前いつもスマートだよな
お前いつもスマートだよな
339デフォルトの名無しさん
2019/09/06(金) 21:58:05.28ID:h6IBFFVJ 材料グループAと材料グループBがあるとする。
それぞれには、ランダムな固有値を持っており、
固有値の差が、ある数値以下の組み合わせのみ使用可能とする。
ただし、材料グループA、B内の材料は一度使うとなくなるため一度しか組み合わせれない。
それぞれのグループの材料が100ずつあったとして適切に組み合わせれば
全てがマッチングできる。ただ人組でもペアを間違えるとマッチングできない。
こういったことを実現するためには、どういった考え方でプログラミングすればいいでしょうか。
それぞれには、ランダムな固有値を持っており、
固有値の差が、ある数値以下の組み合わせのみ使用可能とする。
ただし、材料グループA、B内の材料は一度使うとなくなるため一度しか組み合わせれない。
それぞれのグループの材料が100ずつあったとして適切に組み合わせれば
全てがマッチングできる。ただ人組でもペアを間違えるとマッチングできない。
こういったことを実現するためには、どういった考え方でプログラミングすればいいでしょうか。
340デフォルトの名無しさん
2019/09/06(金) 22:02:46.96ID:adnLBrFU 動的計画法でいいのかな?
オレできねーけど。
オレできねーけど。
341デフォルトの名無しさん
2019/09/06(金) 22:06:24.07ID:IlHiLkpw >>339
各グループの材料を固有値の昇順にソートして小さい方からペア作ってくのではダメなのか?
各グループの材料を固有値の昇順にソートして小さい方からペア作ってくのではダメなのか?
342デフォルトの名無しさん
2019/09/06(金) 22:10:20.13ID:adnLBrFU A:大<->小
B:小<->大
のペアがましといえばまし。
真ん中がマッチしない可能性はある。
B:小<->大
のペアがましといえばまし。
真ん中がマッチしない可能性はある。
343339
2019/09/06(金) 22:10:34.94ID:h6IBFFVJ なるほど、とても簡単な問いだったのですね。
なんか難しい事ばかり考えていました。
なんか難しい事ばかり考えていました。
344デフォルトの名無しさん
2019/09/06(金) 22:11:12.30ID:5B1pyUbX diff のアルゴリズムがもうちょっと複雑なのにも対応できるやつじゃなかったか?
345デフォルトの名無しさん
2019/09/06(金) 22:14:00.34ID:adnLBrFU あー、差が以下か。
A:小<->大
B:小<->大
でいいわ。。。
俺もなんか難しいこと考えてた。そーりー。
A:小<->大
B:小<->大
でいいわ。。。
俺もなんか難しいこと考えてた。そーりー。
346339
2019/09/06(金) 22:14:53.61ID:h6IBFFVJ 必ずマッチングできない100ずつあったとした場合でも昇順ソートして同じ順位にいるもので、比較してマッチングできれば実施、できなければ上位を参照してマッチングできたら抜けて、できなければさらに上位とマッチングみたいなことをすれば良いのか。
347339
2019/09/06(金) 22:23:16.91ID:h6IBFFVJ あっ違う違う。
昇順にソートして組み合わせるとマッチングできないもの出てきます。
というのも差が最小の組み合わせではなくて、
差がある一定以下である事なので、昇順にソートして隣り合うものではダメです。
少し考えたのですが、全ての組み合わせを実施して、その計算結果、今回は差がある数値以下である数が多い組み合わせを採用するみたいなことになるんですかね
昇順にソートして組み合わせるとマッチングできないもの出てきます。
というのも差が最小の組み合わせではなくて、
差がある一定以下である事なので、昇順にソートして隣り合うものではダメです。
少し考えたのですが、全ての組み合わせを実施して、その計算結果、今回は差がある数値以下である数が多い組み合わせを採用するみたいなことになるんですかね
348デフォルトの名無しさん
2019/09/06(金) 22:44:43.03ID:IlHiLkpw >>347
適切な解が存在するケースで、小さい順の付き合わせでダメになる具体例を示せる?
適切な解が存在するケースで、小さい順の付き合わせでダメになる具体例を示せる?
349339
2019/09/06(金) 23:00:40.30ID:h6IBFFVJ ないですね。
ということは、やはり最小のマッチング以外はありえないということになるのですね。
材料在庫が変動していたとしても、その瞬間の最小の差のペアを作ることが
一番効率の良いマッチング方法になるということか、、、。
ということは、やはり最小のマッチング以外はありえないということになるのですね。
材料在庫が変動していたとしても、その瞬間の最小の差のペアを作ることが
一番効率の良いマッチング方法になるということか、、、。
350デフォルトの名無しさん
2019/09/06(金) 23:08:33.74ID:adnLBrFU351デフォルトの名無しさん
2019/09/06(金) 23:19:00.83ID:Sfa1dP8m 全てマッチングできるとは限らず最も多くマッチングできる組み合わせ
を求める ならちょっと工夫必要そう
を求める ならちょっと工夫必要そう
352デフォルトの名無しさん
2019/09/06(金) 23:24:40.52ID:h6IBFFVJ 皆さんありがとう。
最も多くマッチングさせるときは、閾値に一番近い選択を行うことがシンプルということかな?
>>350
コードありがとうございます。
プログラムを生業にしている者ではないのでC++の開発環境から構築になりますが、試してみます。
最も多くマッチングさせるときは、閾値に一番近い選択を行うことがシンプルということかな?
>>350
コードありがとうございます。
プログラムを生業にしている者ではないのでC++の開発環境から構築になりますが、試してみます。
353デフォルトの名無しさん
2019/09/06(金) 23:31:32.53ID:adnLBrFU fix it.
354デフォルトの名無しさん
2019/09/06(金) 23:32:51.82ID:adnLBrFU 大したコードではないが、そこまで威力があるとは思わなかった。
動機なんてそんなもんか。
動機なんてそんなもんか。
355蟻人間 ◆T6xkBnTXz7B0
2019/09/06(金) 23:43:04.03ID:sc/CXZHY お題: ある会社の営業曜日(複数可)と営業時間が与えられる。今月1ヶ月の営業時間の合計を求め、今月のカレンダーの下に表示せよ。ただし、その会社は祝日・祭日を特別扱いしないものとする。
356399
2019/09/07(土) 00:15:01.96ID:meGL1HdM357デフォルトの名無しさん
2019/09/07(土) 09:58:38.85ID:kl0P3WfA358デフォルトの名無しさん
2019/09/07(土) 10:01:09.66ID:15iR+LCW そもそもeigenvalueじゃないのに固有値と言うのに違和感を覚える
359デフォルトの名無しさん
2019/09/07(土) 10:40:38.85ID:K3PTI0jA わからんな
結晶や薄膜やらだと本当に固有値がある
ヤツは「材料」って言っていて、その先に何を想定してるかこちらには伏せられたまま
もしかすると高分子の製薬かもしれない
使うと無くなるんだろ?
結晶や薄膜やらだと本当に固有値がある
ヤツは「材料」って言っていて、その先に何を想定してるかこちらには伏せられたまま
もしかすると高分子の製薬かもしれない
使うと無くなるんだろ?
360デフォルトの名無しさん
2019/09/07(土) 13:46:49.28ID:VQVarZXt361デフォルトの名無しさん
2019/09/07(土) 14:08:25.27ID:VQVarZXt362デフォルトの名無しさん
2019/09/07(土) 14:45:59.42ID:VQVarZXt363399
2019/09/07(土) 20:55:02.76ID:aT864lGO364デフォルトの名無しさん
2019/09/08(日) 00:49:49.01ID:YBN7WO0H 排便を
壁に塗りつけ
したり顔
壁に塗りつけ
したり顔
365デフォルトの名無しさん
2019/09/08(日) 02:51:14.16ID:bEtb/TpC366デフォルトの名無しさん
2019/09/08(日) 08:38:41.51ID:GRxK0QRw >>313
正方形だと3倍速い
正方形だと3倍速い
367デフォルトの名無しさん
2019/09/08(日) 09:39:44.56ID:46Wp6heU 3倍早いだけだったらオーダーが変わらねーじゃん
円が一万個一億個一兆個だったらどうなんの
円が一万個一億個一兆個だったらどうなんの
368デフォルトの名無しさん
2019/09/08(日) 09:58:44.95ID:GRxK0QRw 3日の仕事が1日で済むとも言う。
369デフォルトの名無しさん
2019/09/08(日) 13:16:12.58ID:rbzdrKrZ370蟻人間 ◆T6xkBnTXz7B0
2019/09/08(日) 23:16:36.64ID:YT+ZQkc/ 何か初心者にも解ける面白い問題ないかな?
371蟻人間 ◆T6xkBnTXz7B0
2019/09/08(日) 23:23:17.86ID:YT+ZQkc/ お題: 質問文とn個の項目からなるメニューを実装せよ。
質問文とn個の文字列が入力として与えられる。質問文とn個の項目をかっこよく表示し、ユーザーが一つ項目を選ぶまで待つ。選んだら、選んだ項目を出力する。
質問文とn個の文字列が入力として与えられる。質問文とn個の項目をかっこよく表示し、ユーザーが一つ項目を選ぶまで待つ。選んだら、選んだ項目を出力する。
372蟻人間 ◆T6xkBnTXz7B0
2019/09/08(日) 23:47:28.87ID:YT+ZQkc/ お題: マイ ドキュメントのフォルダ階層構造を表示せよ。
373デフォルトの名無しさん
2019/09/08(日) 23:48:15.93ID:gIfFAHmp お題
与えられた数列の、隣り合う2要素の差のリストを作る関数等を作ってください。
入力数列例
3 1 4 1 5 9 2 6 5
出力数列例
-2 3 -3 4 4 -7 4 -1
余力があれば、ファイルなどから非常に長い数列を与えられても対処できる実装を試みてください
(http://gushwell.ldblog.jp/archives/52379839.html を一部改変)
与えられた数列の、隣り合う2要素の差のリストを作る関数等を作ってください。
入力数列例
3 1 4 1 5 9 2 6 5
出力数列例
-2 3 -3 4 4 -7 4 -1
余力があれば、ファイルなどから非常に長い数列を与えられても対処できる実装を試みてください
(http://gushwell.ldblog.jp/archives/52379839.html を一部改変)
374デフォルトの名無しさん
2019/09/08(日) 23:48:22.91ID:7lW0qzzX お題:北のミサイルをなんとかせよ
375デフォルトの名無しさん
2019/09/08(日) 23:51:10.96ID:ZRQn+E7p どっかの国ハックして打ち込むしか
376デフォルトの名無しさん
2019/09/09(月) 00:57:49.46ID:G8Ger3PB >>373 Perl5
sub f {
map{$_[$_ + 1] - $_[$_]} 0..$#_-1;
}
@a = qw{3 1 4 1 5 9 2 6 5};
@b = f @a;
print "@b\n";
実行結果
~ $ perl 15_373.pl
-2 3 -3 4 4 -7 4 -1
sub f {
map{$_[$_ + 1] - $_[$_]} 0..$#_-1;
}
@a = qw{3 1 4 1 5 9 2 6 5};
@b = f @a;
print "@b\n";
実行結果
~ $ perl 15_373.pl
-2 3 -3 4 4 -7 4 -1
377デフォルトの名無しさん
2019/09/09(月) 07:20:37.09ID:F7fW2XyB >>373 Pharo/Squeak Smalltalk
| fn |
fn := [:xs | xs allButFirst - xs allButLast].
fn value: #(3 1 4 1 5 9 2 6 5). "=> #(-2 3 -3 4 4 -7 4 -1) "
| fn |
fn := [:xs | xs allButFirst - xs allButLast].
fn value: #(3 1 4 1 5 9 2 6 5). "=> #(-2 3 -3 4 4 -7 4 -1) "
378デフォルトの名無しさん
2019/09/09(月) 13:13:33.41ID:4K8wNjEy >>373 Ruby
p [3, 1, 4, 1, 5, 9, 2, 6, 5].each_cons(2).map{|e| -e.reduce(:-)}
# => [-2, 3, -3, 4, 4, -7, 4, -1]
p [3, 1, 4, 1, 5, 9, 2, 6, 5].each_cons(2).map{|e| -e.reduce(:-)}
# => [-2, 3, -3, 4, 4, -7, 4, -1]
379デフォルトの名無しさん
2019/09/09(月) 15:22:46.46ID:pyLk+Xbb >>373 Pharo/Squeak Smalltalk
#(3 1 4 1 5 9 2 6 5) overlappingPairsCollect: [:x :y | y - x]
"=> #(-2 3 -3 4 4 -7 4 -1) "
#(3 1 4 1 5 9 2 6 5) overlappingPairsCollect: [:x :y | y - x]
"=> #(-2 3 -3 4 4 -7 4 -1) "
380デフォルトの名無しさん
2019/09/09(月) 15:35:48.47ID:pmQvKTaB381デフォルトの名無しさん
2019/09/09(月) 15:55:42.79ID:8EKyQA8Q >>373
perl5
"3 1 4 1 5 9 2 6 5" =~ m/(\d) (?= \s? (\d) ) (?{push @diff, $2 -$1}) /xg;
print "@diff";
-2 3 -3 4 4 -7 4 -1
perl5
"3 1 4 1 5 9 2 6 5" =~ m/(\d) (?= \s? (\d) ) (?{push @diff, $2 -$1}) /xg;
print "@diff";
-2 3 -3 4 4 -7 4 -1
382デフォルトの名無しさん
2019/09/09(月) 17:47:36.36ID:Uwb0lHsl383デフォルトの名無しさん
2019/09/09(月) 18:55:29.45ID:nBEHXDpg >>373
ファイルからの読み込み派が居ない件。。。
Haskell
main = readFile "count.txt" >>= return.read >>= \lst -> print $ zipWith (-) (tail lst) lst
― ファイルから読まない場合は
― main = print $ zipWith (-) (tail lst) lst where lst = [3,1,4,1,5,9,2,6,5]
test.txt
[3,1,4,1,5,9,2,6,5]
out:
[-2,3,-3,4,4,-7,4,-1]
ファイルからの読み込み派が居ない件。。。
Haskell
main = readFile "count.txt" >>= return.read >>= \lst -> print $ zipWith (-) (tail lst) lst
― ファイルから読まない場合は
― main = print $ zipWith (-) (tail lst) lst where lst = [3,1,4,1,5,9,2,6,5]
test.txt
[3,1,4,1,5,9,2,6,5]
out:
[-2,3,-3,4,4,-7,4,-1]
384デフォルトの名無しさん
2019/09/09(月) 21:23:29.01ID:pmSRY1k7 >>373 octave
https://ideone.com/SV1flm
>>373 ruby
https://ideone.com/KZ9YO3
>>373 ocaml
https://ideone.com/aiOLiG
https://ideone.com/SV1flm
>>373 ruby
https://ideone.com/KZ9YO3
>>373 ocaml
https://ideone.com/aiOLiG
385デフォルトの名無しさん
2019/09/10(火) 00:22:25.45ID:2zzGvcE4 >>219 Perl5
$s = 'AKDAK';
@a = ('^', split'', $s);
$o{$_} //= ++$i for @a;
%e = map{$a[$_] => $a[$_+1]} 0..$#a-1;
@p = sort{$o{$a} <=> $o{$b}} keys %o;
$d{$p[-1]} = $p[-1].'$';
push @p, '$';
$e{'$'} = '';
print "'$s'\n→\n";
for (@p) {
$v = $e{$_};
$r = $d{$v} // $v;
print "$_: $r.\n";
}
実行結果
~ $ perl 15_219.pl
'AKDAK'
→
^: A.
A: K.
K: D$.
D: A.
$: .
$s = 'AKDAK';
@a = ('^', split'', $s);
$o{$_} //= ++$i for @a;
%e = map{$a[$_] => $a[$_+1]} 0..$#a-1;
@p = sort{$o{$a} <=> $o{$b}} keys %o;
$d{$p[-1]} = $p[-1].'$';
push @p, '$';
$e{'$'} = '';
print "'$s'\n→\n";
for (@p) {
$v = $e{$_};
$r = $d{$v} // $v;
print "$_: $r.\n";
}
実行結果
~ $ perl 15_219.pl
'AKDAK'
→
^: A.
A: K.
K: D$.
D: A.
$: .
386蟻人間 ◆T6xkBnTXz7B0
2019/09/10(火) 01:16:31.32ID:/hHoc5h9 状態遷移図ってどんなときに役立つかな?
387デフォルトの名無しさん
2019/09/10(火) 01:20:32.52ID:2zzGvcE4 ほらまぁ
状態遷移を表形式で定型的に定義した方が
言葉の羅列やグラフもどきポンチ絵などで表現するより明確な場面
さまざまなとき
状態遷移を表形式で定型的に定義した方が
言葉の羅列やグラフもどきポンチ絵などで表現するより明確な場面
さまざまなとき
388デフォルトの名無しさん
2019/09/10(火) 01:22:32.02ID:2zzGvcE4 あいや、表じゃなくて図か。
そしたら、なんとなく依存関係などをややこしいグラフで表現して
ひもつけたとか賜って解釈したような気にさせるとき
自分で考えなよ
そしたら、なんとなく依存関係などをややこしいグラフで表現して
ひもつけたとか賜って解釈したような気にさせるとき
自分で考えなよ
389デフォルトの名無しさん
2019/09/10(火) 02:40:29.88ID:Ik1iUNRF >>373 javascript
[3,1,4,1,5,9,2,6,5]
.reduce((acc, n, i, arr) => [...acc, arr[i + 1] - n], [])
.slice(0, -1)
[3,1,4,1,5,9,2,6,5]
.reduce((acc, n, i, arr) => [...acc, arr[i + 1] - n], [])
.slice(0, -1)
390デフォルトの名無しさん
2019/09/10(火) 08:11:29.51ID:lIijspdS391デフォルトの名無しさん
2019/09/10(火) 17:53:27.20ID:cZVhsOAf Smalltalkはやりたいことだけ書けばいいのがいい
392デフォルトの名無しさん
2019/09/10(火) 18:46:19.95ID:CNsNp03m 分かったよじゃあoverlappingPairsCollect実装するよ…
const overlappingPairsCollect = (arr, cb) => {
let head = arr.shift();
const overlappingPairs = [];
for (const value of arr) {
overlappingPairs.push([head, value]);
head = value;
}
return overlappingPairs.map(([a, b]) => cb(a, b));
}
overlappingPairsCollect([3,1,4,1,5,9,2,6,5], (a, b) => b - a);
//=> [-2,3,-3,4,4,-7,4,-1]
const overlappingPairsCollect = (arr, cb) => {
let head = arr.shift();
const overlappingPairs = [];
for (const value of arr) {
overlappingPairs.push([head, value]);
head = value;
}
return overlappingPairs.map(([a, b]) => cb(a, b));
}
overlappingPairsCollect([3,1,4,1,5,9,2,6,5], (a, b) => b - a);
//=> [-2,3,-3,4,4,-7,4,-1]
393デフォルトの名無しさん
2019/09/10(火) 19:17:03.68ID:CNsNp03m ああ… forの前にif (!head) return overlappingPairs; のearly return入れ忘れた…
394デフォルトの名無しさん
2019/09/10(火) 19:18:47.68ID:ER41jhKS 何言語?
395デフォルトの名無しさん
2019/09/10(火) 19:51:01.24ID:4IK1yyiH 女子小学生のメスガキビッチ言語
396デフォルトの名無しさん
2019/09/10(火) 20:05:04.03ID:9QXTHM58 なるほどjavascriptね!
397デフォルトの名無しさん
2019/09/10(火) 20:19:20.42ID:ER41jhKS398デフォルトの名無しさん
2019/09/10(火) 20:31:26.62ID:ER41jhKS399デフォルトの名無しさん
2019/09/10(火) 21:25:03.39ID:OfzP/6E7400デフォルトの名無しさん
2019/09/10(火) 23:08:14.13ID:aMyCuNre お題
スネークケースをアッパーキャメルケースに変換せよ
アンダースコアを単語の区切りとみなし、単語の先頭は大文字に、先頭以外は小文字に変換すること
また、単語を連結したときに数字が連続する場合はアンダースコアを残すこと
(例)
snake_case => SnakeCase
ODAI00_99_TEST => Odai00_99Test
x_0_x => X0X
UpperCamelCase => Uppercamelcase
スネークケースをアッパーキャメルケースに変換せよ
アンダースコアを単語の区切りとみなし、単語の先頭は大文字に、先頭以外は小文字に変換すること
また、単語を連結したときに数字が連続する場合はアンダースコアを残すこと
(例)
snake_case => SnakeCase
ODAI00_99_TEST => Odai00_99Test
x_0_x => X0X
UpperCamelCase => Uppercamelcase
401デフォルトの名無しさん
2019/09/10(火) 23:20:02.02ID:Ik1iUNRF >>399
allButFirstとallButLastは簡単だけどjsは生き残ってるスクリプト言語にしては珍しく演算子使ったリスト同士の演算が用意されてないのでfnは>>377みたいにキレイに書けない。
const allButFirst = arr => arr.slice(1);
const allButLast = arr => arr.slice(0, -1);
const fn = arr => allButLast(arr).reduce((acc, v, i) => (acc[i] -= v, acc), allButFirst(arr));
fn([3,1,4,1,5,9,2,6,5]);
//=> [-2,3,-3,4,4,-7,4,-1]
allButFirstとallButLastは簡単だけどjsは生き残ってるスクリプト言語にしては珍しく演算子使ったリスト同士の演算が用意されてないのでfnは>>377みたいにキレイに書けない。
const allButFirst = arr => arr.slice(1);
const allButLast = arr => arr.slice(0, -1);
const fn = arr => allButLast(arr).reduce((acc, v, i) => (acc[i] -= v, acc), allButFirst(arr));
fn([3,1,4,1,5,9,2,6,5]);
//=> [-2,3,-3,4,4,-7,4,-1]
402デフォルトの名無しさん
2019/09/11(水) 00:10:49.73ID:JxGfX2fh >>400 Perl5
use feature say;
for (<DATA>) {
say map{ucfirst lc} /((?:\d_\d|[^_\s])+)/g;
}
__DATA__
snake_case
ODAI00_99_TEST
x_0_x
UpperCamelCase
実行結果
~ $ perl 15_400.pl
SnakeCase
Odai00_99Test
X0X
Uppercamelcase
use feature say;
for (<DATA>) {
say map{ucfirst lc} /((?:\d_\d|[^_\s])+)/g;
}
__DATA__
snake_case
ODAI00_99_TEST
x_0_x
UpperCamelCase
実行結果
~ $ perl 15_400.pl
SnakeCase
Odai00_99Test
X0X
Uppercamelcase
403デフォルトの名無しさん
2019/09/11(水) 00:26:05.86ID:JxGfX2fh404デフォルトの名無しさん
2019/09/11(水) 00:31:52.77ID:TkJgDVYV405デフォルトの名無しさん
2019/09/11(水) 00:44:08.30ID:hWizELa3 >>397
C++むずかしすぎワロタwwwww
C++むずかしすぎワロタwwwww
406デフォルトの名無しさん
2019/09/11(水) 00:47:45.94ID:TkJgDVYV C++とJSとの違いは大雑把に言って、使う型を先に決めるか後で決めるか。という程度だと思う。
オレ、自分の幸福度を上げるために、80行位で問題とくようにしている。
というか、手癖でそれくらいになる。
オレ、自分の幸福度を上げるために、80行位で問題とくようにしている。
というか、手癖でそれくらいになる。
407デフォルトの名無しさん
2019/09/11(水) 02:04:01.50ID:hWizELa3 >>400 JavaScript
const fn = s => s.split`_`
.map(([first, ...rest]) => [first.toUpperCase(), rest.join``.toLowerCase()].join``)
.reduce((acc, word) => acc + (/[0-9]{2}/.test(acc[acc.length - 1] + word[0]) ? '_' : '') + word);
fn('snake_case');
//=> "SnakeCase"
fn('ODAI00_99_TEST');
//=> "Odai00_99Test"
fn('x_0_x');
//=> "X0X"
fn('UpperCamelCase');
//=> "Uppercamelcase"
const fn = s => s.split`_`
.map(([first, ...rest]) => [first.toUpperCase(), rest.join``.toLowerCase()].join``)
.reduce((acc, word) => acc + (/[0-9]{2}/.test(acc[acc.length - 1] + word[0]) ? '_' : '') + word);
fn('snake_case');
//=> "SnakeCase"
fn('ODAI00_99_TEST');
//=> "Odai00_99Test"
fn('x_0_x');
//=> "X0X"
fn('UpperCamelCase');
//=> "Uppercamelcase"
408デフォルトの名無しさん
2019/09/11(水) 02:47:21.46ID:0/zUYWhl >>400 Squeak Smalltalk
| fn |
fn := [:str |
| words |
words := str asLowercase subStrings: '_'.
words first capitalized , (words overlappingPairsCollect: [:x :y |
((x last isDigit and: [y first isDigit]) ifTrue: '_' ifFalse: '') , y capitalized
]) join
].
fn value: 'snake_case'. "=> 'SnakeCase' "
fn value: 'ODAI00_99_TEST'. "=> 'Odai00_99Test' "
fn value: 'x_0_x'. "=> 'X0X' "
fn value: 'UpperCamelCase'. "=> 'Uppercamelcase' "
fn value: 'Odai00_9_9Test'. "=> 'Odai00_9_9test' "
| fn |
fn := [:str |
| words |
words := str asLowercase subStrings: '_'.
words first capitalized , (words overlappingPairsCollect: [:x :y |
((x last isDigit and: [y first isDigit]) ifTrue: '_' ifFalse: '') , y capitalized
]) join
].
fn value: 'snake_case'. "=> 'SnakeCase' "
fn value: 'ODAI00_99_TEST'. "=> 'Odai00_99Test' "
fn value: 'x_0_x'. "=> 'X0X' "
fn value: 'UpperCamelCase'. "=> 'Uppercamelcase' "
fn value: 'Odai00_9_9Test'. "=> 'Odai00_9_9test' "
409デフォルトの名無しさん
2019/09/11(水) 06:02:16.09ID:CEu0fvWD >400 Ruby
f = -> s {s.split(/(?<=\D)_|_(?=\D)/).map(&:capitalize).join}
%w[
snake_case ODAI00_99_TEST x_0_x UpperCamelCase
].each{|s| puts '%s => %s' % [s, f[s]]}
# =>
snake_case => SnakeCase
ODAI00_99_TEST => Odai00_99Test
x_0_x => X0X
UpperCamelCase => Uppercamelcase
f = -> s {s.split(/(?<=\D)_|_(?=\D)/).map(&:capitalize).join}
%w[
snake_case ODAI00_99_TEST x_0_x UpperCamelCase
].each{|s| puts '%s => %s' % [s, f[s]]}
# =>
snake_case => SnakeCase
ODAI00_99_TEST => Odai00_99Test
x_0_x => X0X
UpperCamelCase => Uppercamelcase
410デフォルトの名無しさん
2019/09/11(水) 06:06:45.97ID:CEu0fvWD411デフォルトの名無しさん
2019/09/11(水) 12:54:52.45ID:Alp4BtBi412デフォルトの名無しさん
2019/09/11(水) 21:23:01.78ID:RlhjBlE6 お題:リストの奇数位置にある要素のみを含むリストを作れ
ただし、先頭要素を1番目と数える
[1, 2, 3, 4, 5]
↓
[1, 3, 5]
rust
https://ideone.com/yXYsFB
octave
https://ideone.com/Go8xXL
ただし、先頭要素を1番目と数える
[1, 2, 3, 4, 5]
↓
[1, 3, 5]
rust
https://ideone.com/yXYsFB
octave
https://ideone.com/Go8xXL
413デフォルトの名無しさん
2019/09/11(水) 21:27:05.78ID:C94vqLvq >>400
UpperCamelCaseはそのまま返すべきだろう。
(と言う事で、1文字目が大文字かつ全文に’_’が無い場合は、(恐らくUpperCamelCaseだろうと期待して)そのまま返すようにした)
Haskell
import Data.Char
main = mapM_ (print.f) ["snake_case","ODAI00_99_TEST","x_0_x","UpperCamelCase","notupperCamelCase"]
f [] = []
f lst@(x:_) | and [elem x ['A'..'Z'], (not.elem '_') lst] = lst
f (x:xs) = toUpper x:map toLower a ++ f (map toLower $ f' a b)
where
(a,b) = span (/= '_') xs
f' _ [] = []
f' [] (y:ys) = ys
f' xs lst@('_':y:ys) |and [(isDigit.last) xs, isDigit y] = lst
f' _ (_:ys) = ys
out:
"SnakeCase"
"Odai00_99Test"
"X0X"
"UpperCamelCase"
"Notuppercamelcase"
UpperCamelCaseはそのまま返すべきだろう。
(と言う事で、1文字目が大文字かつ全文に’_’が無い場合は、(恐らくUpperCamelCaseだろうと期待して)そのまま返すようにした)
Haskell
import Data.Char
main = mapM_ (print.f) ["snake_case","ODAI00_99_TEST","x_0_x","UpperCamelCase","notupperCamelCase"]
f [] = []
f lst@(x:_) | and [elem x ['A'..'Z'], (not.elem '_') lst] = lst
f (x:xs) = toUpper x:map toLower a ++ f (map toLower $ f' a b)
where
(a,b) = span (/= '_') xs
f' _ [] = []
f' [] (y:ys) = ys
f' xs lst@('_':y:ys) |and [(isDigit.last) xs, isDigit y] = lst
f' _ (_:ys) = ys
out:
"SnakeCase"
"Odai00_99Test"
"X0X"
"UpperCamelCase"
"Notuppercamelcase"
414デフォルトの名無しさん
2019/09/11(水) 23:29:56.75ID:sKkTHzOH >>400 Perl5、>>402-403 の修正、>>413 のように UpperCamelCase など_を含まない文字列はそのまま返す
use feature say;
for(<DATA>) {
@a = split/(?<!\d)_|_(?!\d)|\s/;
say 1 == @a ? @a : map{ucfirst lc} @a;
}
__DATA__
snake_case
ODAI00_99_TEST
x_0_x
UpperCamelCase
_local_vvar_
lavel_style_
OdAi00_9_9TeST
実行結果
~ $ perl 15_400_fix.pl
SnakeCase
Odai00_99Test
X0X
UpperCamelCase
LocalVvar
LavelStyle
Odai00_9_9Test
use feature say;
for(<DATA>) {
@a = split/(?<!\d)_|_(?!\d)|\s/;
say 1 == @a ? @a : map{ucfirst lc} @a;
}
__DATA__
snake_case
ODAI00_99_TEST
x_0_x
UpperCamelCase
_local_vvar_
lavel_style_
OdAi00_9_9TeST
実行結果
~ $ perl 15_400_fix.pl
SnakeCase
Odai00_99Test
X0X
UpperCamelCase
LocalVvar
LavelStyle
Odai00_9_9Test
415デフォルトの名無しさん
2019/09/11(水) 23:34:45.60ID:sKkTHzOH >>414 ゴメン、実行結果貼り間違えた(下記のように最後のOdAi00_9_9TeSTはそのまま出る)
~ $ perl 15_400.pl
SnakeCase
Odai00_99Test
X0X
UpperCamelCase
LocalVvar
LavelStyle
OdAi00_9_9TeST
~ $ perl 15_400.pl
SnakeCase
Odai00_99Test
X0X
UpperCamelCase
LocalVvar
LavelStyle
OdAi00_9_9TeST
416デフォルトの名無しさん
2019/09/11(水) 23:43:35.81ID:sKkTHzOH >>412 Perl5
@a = a..z;
@x = map{$_-1} grep{$_&1} 1..@a;
@b = @a[@x];
print "[@b]\n";
実行結果
~ $ perl 15_412.pl
[a c e g i k m o q s u w y]
@a = a..z;
@x = map{$_-1} grep{$_&1} 1..@a;
@b = @a[@x];
print "[@b]\n";
実行結果
~ $ perl 15_412.pl
[a c e g i k m o q s u w y]
417デフォルトの名無しさん
2019/09/12(木) 00:37:35.06ID:zD/2/X2z >>412
common lisp
(loop for i in '(1 2 3 4 5) for j from 1 when (eql 1 (mod j 2)) collect i)
(1 3 5)
common lisp
(loop for i in '(1 2 3 4 5) for j from 1 when (eql 1 (mod j 2)) collect i)
(1 3 5)
418デフォルトの名無しさん
2019/09/12(木) 02:26:36.91ID:IEWaKNAx419デフォルトの名無しさん
2019/09/12(木) 09:48:36.52ID:XoEd0LBY420デフォルトの名無しさん
2019/09/12(木) 11:37:50.98ID:Cxpf63qu421デフォルトの名無しさん
2019/09/12(木) 18:13:32.79ID:sKYe7PWn422デフォルトの名無しさん
2019/09/12(木) 18:34:25.79ID:u0+zztnJ423デフォルトの名無しさん
2019/09/12(木) 21:30:23.66ID:+vUO8BYK424デフォルトの名無しさん
2019/09/12(木) 21:33:45.75ID:cqw0/uFd さすがJ
サッパリ分からん
サッパリ分からん
425デフォルトの名無しさん
2019/09/13(金) 00:40:21.67ID:6zSQdjjj >>412
せめて、リストの中身は順番と関係無い内容の方が。。。
(例えば"abcde"とか)
Haskell
main = (print.oddlist) [1..5]
oddlist xs = [x | (x,y) <- zip xs [1..], odd y]
せめて、リストの中身は順番と関係無い内容の方が。。。
(例えば"abcde"とか)
Haskell
main = (print.oddlist) [1..5]
oddlist xs = [x | (x,y) <- zip xs [1..], odd y]
426デフォルトの名無しさん
2019/09/13(金) 02:03:47.81ID:qdoB8RTo427デフォルトの名無しさん
2019/09/13(金) 13:13:33.48ID:zfsxzWX8428デフォルトの名無しさん
2019/09/13(金) 21:31:55.35ID:5n7mddvT429デフォルトの名無しさん
2019/09/13(金) 21:37:33.86ID:sQZEDK+j tcl/tkで「tk部分ははいいがtclがクソ」みたいなのよく見た気がするんだけど、あれどういうとこが根拠なん?
430デフォルトの名無しさん
2019/09/14(土) 04:14:12.84ID:x5aQTHnU お題: すべての人民は和平のために火急的に速やかに自己の復元を実現しなければならない。
431デフォルトの名無しさん
2019/09/14(土) 04:28:39.19ID:BS6VTuNp432デフォルトの名無しさん
2019/09/14(土) 07:49:29.90ID:/8qdS/t9433デフォルトの名無しさん
2019/09/14(土) 08:17:19.38ID:G26P45sA434デフォルトの名無しさん
2019/09/14(土) 08:24:26.09ID:Hd+E1riT435デフォルトの名無しさん
2019/09/14(土) 08:30:44.01ID:G26P45sA436デフォルトの名無しさん
2019/09/14(土) 19:11:38.33ID:Rj/aIpzV >>426
クリプタって何?
クリプタって何?
437デフォルトの名無しさん
2019/09/14(土) 19:29:31.44ID:daGZRaa0 ザラキ唱える人じゃないか
438デフォルトの名無しさん
2019/09/14(土) 19:57:54.64ID:oc39AgJX439デフォルトの名無しさん
2019/09/14(土) 20:22:44.80ID:x5aQTHnU >>437
それはクリフト
それはクリフト
440デフォルトの名無しさん
2019/09/14(土) 21:03:45.14ID:KmV3vhTN cryptoなんだからcryptorじゃないの?
441蟻人間 ◆T6xkBnTXz7B0
2019/09/14(土) 21:19:35.56ID:0f+SL6BM それをゆうなら、encrypterの方が自然じゃん。
442デフォルトの名無しさん
2019/09/14(土) 22:06:47.02ID:31y0+jF3 でも、それをいうならの方が自然かも
443デフォルトの名無しさん
2019/09/14(土) 22:21:17.26ID:oc39AgJX EnCrypterか。了解。
忘れたらごめんなさい。
忘れたらごめんなさい。
444デフォルトの名無しさん
2019/09/14(土) 22:23:04.61ID:pQ8OW4Ak EnCrypterはおかしい
Encryperでいい
Encryperでいい
445デフォルトの名無しさん
2019/09/14(土) 22:23:28.79ID:pQ8OW4Ak tが抜けた
446デフォルトの名無しさん
2019/09/14(土) 22:26:10.43ID:hhxdRhHk EmScriptEn
447デフォルトの名無しさん
2019/09/14(土) 22:35:29.16ID:oc39AgJX448デフォルトの名無しさん
2019/09/14(土) 23:35:07.41ID:1m2PUwRG449デフォルトの名無しさん
2019/09/15(日) 10:23:47.74ID:4T3I9hnw >>426 Perl 5.30
# -*- coding: utf-8 -*-
no warnings 'experimental::signatures';
use feature qw(say signatures); # lexical_subs);
sub ReversibleHash_Encode($S, $C) {
@a = unpack 'C*', $S;
$l = @c = split '', $C;
my $o; ++$o while $l**$o < 256; #my $o = 1 + log(256)/log $l;
use integer;
my sub _enc($i) { join '', reverse map{($i, $m) = ($i/$l, $i%$l); $c[$m]} 1..$o }
%e = map{$_ => '%'._enc $_} 0..255;
join '', map{$e{$_}} @a;
}
sub ReversibleHash_Decode($S, $C) {
@s = $S =~ /(%\w+)/g;
%d = map{$e{$_} => $_ } keys %e;
pack 'C*', map{$d{$_}} @s;
}
say $t = ReversibleHash_Encode 'ウィキペディア', '0123456789';
say $s = ReversibleHash_Decode $t, '0123456789';
$Ch = "abcdefghijklnmopqrstuvwxyz0123456789";
say $t = ReversibleHash_Encode $s, $Ch;
say $s = ReversibleHash_Decode $t, $Ch;
実行結果
~ $ perl 15_426.pl
%227%130%166%227%130%163%227%130%173%227%131%154%227%131%135%227%130%163%227%130%162
ウィキペディア
%gl%dw%ew%gl%dw%et%gl%dw%e3%gl%dx%ek%gl%dx%d1%gl%dw%et%gl%dw%es
ウィキペディア
# -*- coding: utf-8 -*-
no warnings 'experimental::signatures';
use feature qw(say signatures); # lexical_subs);
sub ReversibleHash_Encode($S, $C) {
@a = unpack 'C*', $S;
$l = @c = split '', $C;
my $o; ++$o while $l**$o < 256; #my $o = 1 + log(256)/log $l;
use integer;
my sub _enc($i) { join '', reverse map{($i, $m) = ($i/$l, $i%$l); $c[$m]} 1..$o }
%e = map{$_ => '%'._enc $_} 0..255;
join '', map{$e{$_}} @a;
}
sub ReversibleHash_Decode($S, $C) {
@s = $S =~ /(%\w+)/g;
%d = map{$e{$_} => $_ } keys %e;
pack 'C*', map{$d{$_}} @s;
}
say $t = ReversibleHash_Encode 'ウィキペディア', '0123456789';
say $s = ReversibleHash_Decode $t, '0123456789';
$Ch = "abcdefghijklnmopqrstuvwxyz0123456789";
say $t = ReversibleHash_Encode $s, $Ch;
say $s = ReversibleHash_Decode $t, $Ch;
実行結果
~ $ perl 15_426.pl
%227%130%166%227%130%163%227%130%173%227%131%154%227%131%135%227%130%163%227%130%162
ウィキペディア
%gl%dw%ew%gl%dw%et%gl%dw%e3%gl%dx%ek%gl%dx%d1%gl%dw%et%gl%dw%es
ウィキペディア
450デフォルトの名無しさん
2019/09/15(日) 10:37:25.58ID:Pt8t6mL1 zipとunzip関数があるからそれで偶数と奇数に分ければいい
451デフォルトの名無しさん
2019/09/15(日) 11:42:49.90ID:4T3I9hnw >>412 Prl5 (≦5.28)、配列の添字を0始まり以外にする$[ (array_base feature)を使用
$[ = 1;
@a = a..z;
@x = grep{$_ & 1} 1..@a;
@b = @a[@x];
print "@b\n";
実行結果
~ $ perl 15_412_array_base.pl
a c e g i k m o q s u w y
※5.12〜5.28では$[は非推奨になり、設定すると
Use of assignment to $[ is deprecated at 15_412_2.pl line 1.
というwarningが出ます、5.30からは$[の設定できなくなりました
$[ = 1;
@a = a..z;
@x = grep{$_ & 1} 1..@a;
@b = @a[@x];
print "@b\n";
実行結果
~ $ perl 15_412_array_base.pl
a c e g i k m o q s u w y
※5.12〜5.28では$[は非推奨になり、設定すると
Use of assignment to $[ is deprecated at 15_412_2.pl line 1.
というwarningが出ます、5.30からは$[の設定できなくなりました
452デフォルトの名無しさん
2019/09/15(日) 15:11:01.79ID:G44yhCx+453デフォルトの名無しさん
2019/09/15(日) 15:41:23.29ID:5s85lzPu 鰐んぐ
魚にんぐ
魚にんぐ
454デフォルトの名無しさん
2019/09/15(日) 16:31:54.72ID:vhYJbDpr >>449
実行はしてないが、成果については「GJ!!」だ!
実行はしてないが、成果については「GJ!!」だ!
455デフォルトの名無しさん
2019/09/16(月) 04:35:46.66ID:NOoJUh0d お題: 文字列が渡されるので文字vの左隣の文字を小文字、右隣の文字を大文字に変換しなさい
456デフォルトの名無しさん
2019/09/16(月) 06:10:07.69ID:VWND3fAL >>455
"avbvc" の結果を教えてくれ
"avbvc" の結果を教えてくれ
457デフォルトの名無しさん
2019/09/16(月) 08:35:06.75ID:NOoJUh0d >>456
その場合はvに挟まれた文字をxに変換してください
その場合はvに挟まれた文字をxに変換してください
458デフォルトの名無しさん
2019/09/16(月) 08:42:47.33ID:3bKCxc1X >>457
"avvb" の結果を教えてくれ
"avvb" の結果を教えてくれ
459デフォルトの名無しさん
2019/09/16(月) 11:06:17.48ID:uJI/7eR2 頭悪そうなお題はパスで
460デフォルトの名無しさん
2019/09/16(月) 15:26:20.20ID:eLMc9ESO お題:1から100までの自然数がある。ランダムに30個抜き出せ。
461デフォルトの名無しさん
2019/09/16(月) 15:30:00.20ID:4Q9Ti1cA >>460 Ruby
p [*1..100].sample(30)
# => [13, 29, 96, 79, 78, 17, 89, 88, 69, 51, 44, 16, 54, 62,
47, 19, 45, 26, 43, 40, 91, 32, 30, 86, 84, 85, 15, 6, 41, 95]
p [*1..100].sample(30)
# => [13, 29, 96, 79, 78, 17, 89, 88, 69, 51, 44, 16, 54, 62,
47, 19, 45, 26, 43, 40, 91, 32, 30, 86, 84, 85, 15, 6, 41, 95]
462デフォルトの名無しさん
2019/09/16(月) 16:08:30.72ID:ShPpQTCq463デフォルトの名無しさん
2019/09/16(月) 16:53:32.17ID:P3J/MfSa >>460 Perl5、※選択に重複がないようにした
@a = 1..100;
use List::Util shuffle;
@b = (shuffle @a)[0..29];
print "@b\n";
実行結果
~ $ perl 15_460.pl
64 90 99 41 46 11 25 23 2 12 43 42 24 96 59 44 19 7 92 47 15 86 84 68 13 100 76 34 87 9
@a = 1..100;
use List::Util shuffle;
@b = (shuffle @a)[0..29];
print "@b\n";
実行結果
~ $ perl 15_460.pl
64 90 99 41 46 11 25 23 2 12 43 42 24 96 59 44 19 7 92 47 15 86 84 68 13 100 76 34 87 9
464デフォルトの名無しさん
2019/09/16(月) 16:59:32.09ID:ZgnCsjLO >>460 J
(30?100) { >: i. 100
(30?100) { >: i. 100
465デフォルトの名無しさん
2019/09/16(月) 17:36:43.98ID:enU8we0d >>464
なるほど全然わからん
なるほど全然わからん
466デフォルトの名無しさん
2019/09/16(月) 20:23:01.84ID:LKlzCOg4467デフォルトの名無しさん
2019/09/17(火) 17:37:59.85ID:IoM9hprN プログラム言語標準の文字列(e.g. java.lang.String) が与えられ、ランレングス圧縮した結果をプログラム言語標準の文字列で返す関数を作成してください。ただし、入力に数字が入っていた場合のケースは考慮しなくても構いません。
テストケース(関数名 = f)
f("あいうえお") -> "あいうえお"
f("ああいいうう") -> "あ2い2う2"
f("あいうあいう") -> "あいうあいう"
テストケース(関数名 = f)
f("あいうえお") -> "あいうえお"
f("ああいいうう") -> "あ2い2う2"
f("あいうあいう") -> "あいうあいう"
468デフォルトの名無しさん
2019/09/17(火) 18:15:13.62ID:kyKgfAv0 あうあうあー -> あうあうあー
ああああ -> あ4
ああああ -> あ4
469デフォルトの名無しさん
2019/09/17(火) 18:37:25.07ID:IoM9hprN そゆこと
470デフォルトの名無しさん
2019/09/17(火) 19:42:43.30ID:N7hzq5cx python に あ2い2う2
のようにカウンティング結果を含んだリストを返すライブラリが
はいっていたな
のようにカウンティング結果を含んだリストを返すライブラリが
はいっていたな
471デフォルトの名無しさん
2019/09/17(火) 21:40:53.07ID:nuFS/S7T472デフォルトの名無しさん
2019/09/17(火) 21:47:22.78ID:s7WBnLNZ >>467 JavaScript
const f = s => [...s]
.reduce((acc, ch) => {
const [lastCh, n = 1] = acc.pop() || [];
if (!lastCh) return [[ch]];
if (lastCh == ch) {
return [...acc, [lastCh, n + 1]];
} else {
return [...acc, [lastCh, n == 1 ? '' : n], [ch]];
}
}, [])
.flat(Infinity)
.join``;
const f = s => [...s]
.reduce((acc, ch) => {
const [lastCh, n = 1] = acc.pop() || [];
if (!lastCh) return [[ch]];
if (lastCh == ch) {
return [...acc, [lastCh, n + 1]];
} else {
return [...acc, [lastCh, n == 1 ? '' : n], [ch]];
}
}, [])
.flat(Infinity)
.join``;
473デフォルトの名無しさん
2019/09/17(火) 23:32:50.16ID:htBCID9n >>467 Perl5
use utf8;
binmode STDOUT, ':encoding(utf-8)';
for (qw{あいうえお ああいいうう あいうあいう あうあうあー ああああ}) {
my $s;
while (/((.)\g-1*)/g) {
$s .= $2;
$s .= $l if 1 < ($l = length $1);
}
print "$s\n";
}
実行結果
~ $ perl 15_467.pl
あいうえお
あ2い2う2
あいうあいう
あうあうあー
あ4
use utf8;
binmode STDOUT, ':encoding(utf-8)';
for (qw{あいうえお ああいいうう あいうあいう あうあうあー ああああ}) {
my $s;
while (/((.)\g-1*)/g) {
$s .= $2;
$s .= $l if 1 < ($l = length $1);
}
print "$s\n";
}
実行結果
~ $ perl 15_467.pl
あいうえお
あ2い2う2
あいうあいう
あうあうあー
あ4
474デフォルトの名無しさん
2019/09/17(火) 23:58:08.34ID:htBCID9n >>467 Perl5、しくった、お題は「関数を作れ」だった…orz
use utf8;
binmode STDOUT, ':encoding(utf-8)';
sub f {
my $s;
while (/((.)\g-1*)/g) {
$s .= $2;
$s .= $l if 1 < ($l = length $1);
}
$s
}
for (qw{あいうえお ああいいうう あいうあいう あうあうあー ああああ}) {
print f($_)."\n";
}
~ $ perl 15_467_f.pl
あいうえお
あ2い2う2
あいうあいう
あうあうあー
あ4
use utf8;
binmode STDOUT, ':encoding(utf-8)';
sub f {
my $s;
while (/((.)\g-1*)/g) {
$s .= $2;
$s .= $l if 1 < ($l = length $1);
}
$s
}
for (qw{あいうえお ああいいうう あいうあいう あうあうあー ああああ}) {
print f($_)."\n";
}
~ $ perl 15_467_f.pl
あいうえお
あ2い2う2
あいうあいう
あうあうあー
あ4
475デフォルトの名無しさん
2019/09/18(水) 10:00:45.90ID:Qm7jF2Kv >>467 Ruby
f = -> s {s.gsub(/(.)\1+/){[$1, $&.size].join}}
%w[あいうえお ああいいうう あいうあいう あうあうあー ああああ].each{|s| puts [s, f[s]].join(' => ')}
# =>
あいうえお => あいうえお
ああいいうう => あ2い2う2
あいうあいう => あいうあいう
あうあうあー => あうあうあー
ああああ => あ4
f = -> s {s.gsub(/(.)\1+/){[$1, $&.size].join}}
%w[あいうえお ああいいうう あいうあいう あうあうあー ああああ].each{|s| puts [s, f[s]].join(' => ')}
# =>
あいうえお => あいうえお
ああいいうう => あ2い2う2
あいうあいう => あいうあいう
あうあうあー => あうあうあー
ああああ => あ4
476デフォルトの名無しさん
2019/09/18(水) 10:37:56.54ID:Qm7jF2Kv >>432 Ruby
module Hoge
refine Array do
def oddlist
select.with_index{|s, i| i.odd?}
end
end
end
class C1
p [0, 1, 2, 3, 4].oddlist rescue p$!
# => #<NoMethodError: undefined method `oddlist' for []:Array>
end
class C2
using Hoge
p [0, 1, 2, 3, 4].oddlist
# => [1, 3]
end
module Hoge
refine Array do
def oddlist
select.with_index{|s, i| i.odd?}
end
end
end
class C1
p [0, 1, 2, 3, 4].oddlist rescue p$!
# => #<NoMethodError: undefined method `oddlist' for []:Array>
end
class C2
using Hoge
p [0, 1, 2, 3, 4].oddlist
# => [1, 3]
end
477デフォルトの名無しさん
2019/09/18(水) 15:45:23.52ID:GIOjMe2C478デフォルトの名無しさん
2019/09/18(水) 17:30:11.83ID:quy23QLp むずかし過ぎワロタwww
俺にC++は絶対ムリwwwww
俺にC++は絶対ムリwwwww
479デフォルトの名無しさん
2019/09/18(水) 17:40:05.70ID:GIOjMe2C480デフォルトの名無しさん
2019/09/18(水) 19:34:59.80ID:Dukdxvvo 完成品はないけどなw
481デフォルトの名無しさん
2019/09/18(水) 19:48:16.27ID:GIOjMe2C >>480
ウインドウズのアプリっぽいの一個位は作ったことあるよ。
ウインドウズのアプリっぽいの一個位は作ったことあるよ。
482デフォルトの名無しさん
2019/09/18(水) 19:56:52.36ID:Dukdxvvo はいはいいつもの
483デフォルトの名無しさん
2019/09/18(水) 20:22:10.02ID:GIOjMe2C >>482
ボット認定していい?
ボット認定していい?
484デフォルトの名無しさん
2019/09/18(水) 22:47:30.76ID:Zy9clRCR >>483
bot(だと自分で思ってる)相手にレスしちゃう男の人なんて……
bot(だと自分で思ってる)相手にレスしちゃう男の人なんて……
485蟻人間 ◆T6xkBnTXz7B0
2019/09/19(木) 03:17:38.21ID:fzYUHnaE お題: 明日の東京都の天気を教えてくれる「お天気ねえさん」を実装せよ。
https://www.drk7.jp/weather/
ここのXMLデータを参考に、明日の東京都の天気を優しく説明してくれるような説明テキストを生成せよ。
例) 明日XX月YY日の東京都の天気は○○です。○○注意報が出ています。傘を忘れないでね。
https://www.drk7.jp/weather/
ここのXMLデータを参考に、明日の東京都の天気を優しく説明してくれるような説明テキストを生成せよ。
例) 明日XX月YY日の東京都の天気は○○です。○○注意報が出ています。傘を忘れないでね。
486蟻人間 ◆T6xkBnTXz7B0
2019/09/19(木) 03:40:46.99ID:fzYUHnaE ある種のデータは石油のように重要だから、データ自動生成は条件が揃えばお金儲けにつながる。まあ、とことんチャレンジしたまえ。
487デフォルトの名無しさん
2019/09/19(木) 04:53:29.17ID:kXMoSLFb >>485
sh と perl5
https://pastebin.com/3dXzkYvR
https://i.imgur.com/G3ehbXa.png
colorlizerの中がperl入りで
見やすくするユーティリティー
sh と perl5
https://pastebin.com/3dXzkYvR
https://i.imgur.com/G3ehbXa.png
colorlizerの中がperl入りで
見やすくするユーティリティー
488デフォルトの名無しさん
2019/09/19(木) 20:26:10.81ID:tW2U1Dga google の検索結果を 10 づつ合計 1000 件ダウンロードするプログラム
490デフォルトの名無しさん
2019/09/19(木) 21:01:33.69ID:Iq+eqHsU >>467 Lua
マルチバイト文字には対応していない。
function f(s)
local r,c="",1
for i=1,#s do
if s:sub(i,i)==s:sub(i+1,i+1) then
c=c+1
else
r=r..s:sub(i,i)
if c>1 then
r=r..c
c=1
end
end
end
return(r)
end
print(f("aaabbc"))
実行結果
a3b2c
マルチバイト文字には対応していない。
function f(s)
local r,c="",1
for i=1,#s do
if s:sub(i,i)==s:sub(i+1,i+1) then
c=c+1
else
r=r..s:sub(i,i)
if c>1 then
r=r..c
c=1
end
end
end
return(r)
end
print(f("aaabbc"))
実行結果
a3b2c
491デフォルトの名無しさん
2019/09/19(木) 21:11:19.84ID:VNRPdI7o492デフォルトの名無しさん
2019/09/19(木) 21:20:20.35ID:7Zlc7qce >>467
perl5
デバッガが日本語で化けるんで英語だけ
print("aabbccddd" =~ s{ (.) \1* }{ "$1" . length"$&" }xgre);
a2b2c2d3
perl5
デバッガが日本語で化けるんで英語だけ
print("aabbccddd" =~ s{ (.) \1* }{ "$1" . length"$&" }xgre);
a2b2c2d3
493デフォルトの名無しさん
2019/09/20(金) 00:35:55.08ID:brDhMnbX >>485 Perl5 (LWP::UserAgent、LWP::Protocol::https、XML::Simple のinstallしてあるPCで)
# -*- coding: utf-8 -*-
use utf8; use Data::Dump 'dump'; use Data::Dumper;
binmode STDOUT, ':encoding(utf-8)';
use feature say;
$pno = 13; # ex) 01:北海道, 13:東京, 20:長野, 47:沖縄
$url = "https://www.drk7.jp/weather/xml/$pno.xml";
require LWP::UserAgent; # with LWP::Protocol::https
$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko');
$xml = LWP::UserAgent->new->get($url)->content;
use XML::Simple;
my $xs = new XML::Simple; #(keyattr => ['area']); # (forcearray => ['info'], keyattr => ['pref']);
my $data = $xs->XMLin($xml);
say "$_: $data->{$_}" for qw{title link description pubDate author managingEditor};
$pref = $data->{pref}; say "都道府県: $pref->{id}";
%area = %{$pref->{area}};
for $region (keys %area) {
$area = $area{$region};
printf "地域: $region (緯度=%s, 経度=%s)\n", @{$area->{geo}}{qw{lat long}};
for $info (@{$area->{info}}) {
say " $info->{date} 天気:$info->{weather} (画像 $info->{img})";
$info->{$_} and say ' 'x9, $info->{$_} for qw{weather_detail wave};
%temp = %{$info->{temperature}};
say ' 'x6, " 気温[$temp{unit}]: ", join 'から', sort map{"$_->{content}°"} @{$temp{range}};
%rfc = %{$info->{rainfallchance}};
say ' 'x6, " 降水確率 : ", join ', ', map{"$_->{hour}時:$_->{content}$rfc{unit}"} @{$rfc{period}};
}
}
# -*- coding: utf-8 -*-
use utf8; use Data::Dump 'dump'; use Data::Dumper;
binmode STDOUT, ':encoding(utf-8)';
use feature say;
$pno = 13; # ex) 01:北海道, 13:東京, 20:長野, 47:沖縄
$url = "https://www.drk7.jp/weather/xml/$pno.xml";
require LWP::UserAgent; # with LWP::Protocol::https
$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko');
$xml = LWP::UserAgent->new->get($url)->content;
use XML::Simple;
my $xs = new XML::Simple; #(keyattr => ['area']); # (forcearray => ['info'], keyattr => ['pref']);
my $data = $xs->XMLin($xml);
say "$_: $data->{$_}" for qw{title link description pubDate author managingEditor};
$pref = $data->{pref}; say "都道府県: $pref->{id}";
%area = %{$pref->{area}};
for $region (keys %area) {
$area = $area{$region};
printf "地域: $region (緯度=%s, 経度=%s)\n", @{$area->{geo}}{qw{lat long}};
for $info (@{$area->{info}}) {
say " $info->{date} 天気:$info->{weather} (画像 $info->{img})";
$info->{$_} and say ' 'x9, $info->{$_} for qw{weather_detail wave};
%temp = %{$info->{temperature}};
say ' 'x6, " 気温[$temp{unit}]: ", join 'から', sort map{"$_->{content}°"} @{$temp{range}};
%rfc = %{$info->{rainfallchance}};
say ' 'x6, " 降水確率 : ", join ', ', map{"$_->{hour}時:$_->{content}$rfc{unit}"} @{$rfc{period}};
}
}
494デフォルトの名無しさん
2019/09/20(金) 00:38:16.81ID:brDhMnbX 実行結果(例)
~ $ perl 15_485.pl
title: weather forecast xml
link: http://www.drk7.jp/weather/xml/13.xml
description: 気象庁の天気予報情報を XML で配信。1日1回 AM 6:00 ごろ更新。
pubDate: Thu, 19 Sep 2019 18:00:01 +0900
author: 気象庁
managingEditor: drk7.jp
都道府県: 東京都
地域: 伊豆諸島南部 (緯度=33.2419, 経度=139.8418)
2019/09/19 天気:くもり時々雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
北東の風 やや強く くもり 夜のはじめ頃 雨 八丈島 では 夜遅く 雷を伴い 激しく 降る
波 3メートル うねり を伴う
気温[摂氏]: 21°から23°
降水確率 : 00-06時:0%, 06-12時:80%, 12-18時:50%, 18-24時:50%
2019/09/20 天気:くもり時々雨 (画像 http://www.drk7.jp/MT/images/MTWeather/203.gif)
東の風 やや強く くもり 一時 雨
波 4メートル のち 3メートル ただし 三宅島 では 3メートル
気温[摂氏]: 20°から23°
降水確率 : 00-06時:50%, 06-12時:60%, 12-18時:60%, 18-24時:50%
2019/09/21 天気:くもり一時雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
気温[摂氏]: 21°から26°
降水確率 : 00-06時:70%, 06-12時:70%, 12-18時:70%, 18-24時:70%
2019/09/22 天気:くもり一時雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
気温[摂氏]: 23°から29°
降水確率 : 00-06時:50%, 06-12時:50%, 12-18時:50%, 18-24時:50%
2019/09/23 天気:くもり一時雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
気温[摂氏]: 25°から29°
降水確率 : 00-06時:50%, 06-12時:50%, 12-18時:50%, 18-24時:50%
…(後略
~ $ perl 15_485.pl
title: weather forecast xml
link: http://www.drk7.jp/weather/xml/13.xml
description: 気象庁の天気予報情報を XML で配信。1日1回 AM 6:00 ごろ更新。
pubDate: Thu, 19 Sep 2019 18:00:01 +0900
author: 気象庁
managingEditor: drk7.jp
都道府県: 東京都
地域: 伊豆諸島南部 (緯度=33.2419, 経度=139.8418)
2019/09/19 天気:くもり時々雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
北東の風 やや強く くもり 夜のはじめ頃 雨 八丈島 では 夜遅く 雷を伴い 激しく 降る
波 3メートル うねり を伴う
気温[摂氏]: 21°から23°
降水確率 : 00-06時:0%, 06-12時:80%, 12-18時:50%, 18-24時:50%
2019/09/20 天気:くもり時々雨 (画像 http://www.drk7.jp/MT/images/MTWeather/203.gif)
東の風 やや強く くもり 一時 雨
波 4メートル のち 3メートル ただし 三宅島 では 3メートル
気温[摂氏]: 20°から23°
降水確率 : 00-06時:50%, 06-12時:60%, 12-18時:60%, 18-24時:50%
2019/09/21 天気:くもり一時雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
気温[摂氏]: 21°から26°
降水確率 : 00-06時:70%, 06-12時:70%, 12-18時:70%, 18-24時:70%
2019/09/22 天気:くもり一時雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
気温[摂氏]: 23°から29°
降水確率 : 00-06時:50%, 06-12時:50%, 12-18時:50%, 18-24時:50%
2019/09/23 天気:くもり一時雨 (画像 http://www.drk7.jp/MT/images/MTWeather/202.gif)
気温[摂氏]: 25°から29°
降水確率 : 00-06時:50%, 06-12時:50%, 12-18時:50%, 18-24時:50%
…(後略
495デフォルトの名無しさん
2019/09/20(金) 01:09:22.21ID:brDhMnbX お天気おねぃさんとは、ほど遠いなコリャ…
496デフォルトの名無しさん
2019/09/20(金) 04:34:57.12ID:vpcMUgg5 お題
以下の、列区切りが空白である入力文字列を、
最後の列の数値が、小さい順番で、行を並べ替えよ
答えは、上下が反転する
a b c 44
x y 33
z 22
11
以下の、列区切りが空白である入力文字列を、
最後の列の数値が、小さい順番で、行を並べ替えよ
答えは、上下が反転する
a b c 44
x y 33
z 22
11
497デフォルトの名無しさん
2019/09/20(金) 07:37:10.18ID:ZVVuMGcz >>496
cat text
a b c 44
x y 33
z 22
11
cat text | perl -pe 's/.*? \s? (\d+)/$1:$&/xgm' | sort -n | perl -pe 's/^\d+://'
11
z 22
x y 33
a b c 44
cat text
a b c 44
x y 33
z 22
11
cat text | perl -pe 's/.*? \s? (\d+)/$1:$&/xgm' | sort -n | perl -pe 's/^\d+://'
11
z 22
x y 33
a b c 44
498デフォルトの名無しさん
2019/09/20(金) 08:14:00.92ID:ImrTQZdo >>467
Common Lisp https://ideone.com/1VXrLk
Perl https://ideone.com/8SVG3V
JavaScript https://ideone.com/Cn73uX
Common Lisp https://ideone.com/1VXrLk
Perl https://ideone.com/8SVG3V
JavaScript https://ideone.com/Cn73uX
499デフォルトの名無しさん
2019/09/20(金) 09:52:16.00ID:PYkAN+VQ >>496 Ruby
puts <<~EOS.each_line.sort_by{|s| s[/\S+\n?/].to_i}
a b c 44
x y 33
z 22
11
EOS
# =>
11
z 22
x y 33
a b c 44
puts <<~EOS.each_line.sort_by{|s| s[/\S+\n?/].to_i}
a b c 44
x y 33
z 22
11
EOS
# =>
11
z 22
x y 33
a b c 44
500デフォルトの名無しさん
2019/09/20(金) 13:59:42.96ID:fZRbtgUM >>489
合法的? にやるにはどうすればいいの?
合法的? にやるにはどうすればいいの?
501デフォルトの名無しさん
2019/09/20(金) 14:08:52.93ID:qcElLt/f502デフォルトの名無しさん
2019/09/20(金) 15:01:57.40ID:8HAndpSr >>496 J
echo@>(/: {: @:(0&".) &.>) <;._2 stdin ''
echo@>(/: {: @:(0&".) &.>) <;._2 stdin ''
503デフォルトの名無しさん
2019/09/20(金) 15:07:26.20ID:uyZD/oLi http://appmarketinglabo.net/osaka-bakurotalk/
Q、hamonさん、ここだけの面白い話は何かありますか?
hamon:
絶対にこれをつくれば海外で10万DLされるという「超鉄板ジャンル」がある。
それは「3Dのリアルな人間をつかった実在のスポーツゲーム」、中身がクソでも10万DLはされる。
「ボクシングvs腕相撲」という実質もぐらたたきのようなゲームが30万DLいった。
「スキージャンプ アルティメイタム」というゲームが10万DLくらい。
マイナーなスポーツでもそのような結果なので、競技人口のベスト10のスポーツを調べてつくれば10万DLは固い。
普通につくるとコストがかかるが、UNITYでつくればストア上でモーションも売っているのでかなり稼げると思う。
Q、hamonさん、ここだけの面白い話は何かありますか?
hamon:
絶対にこれをつくれば海外で10万DLされるという「超鉄板ジャンル」がある。
それは「3Dのリアルな人間をつかった実在のスポーツゲーム」、中身がクソでも10万DLはされる。
「ボクシングvs腕相撲」という実質もぐらたたきのようなゲームが30万DLいった。
「スキージャンプ アルティメイタム」というゲームが10万DLくらい。
マイナーなスポーツでもそのような結果なので、競技人口のベスト10のスポーツを調べてつくれば10万DLは固い。
普通につくるとコストがかかるが、UNITYでつくればストア上でモーションも売っているのでかなり稼げると思う。
504デフォルトの名無しさん
2019/09/21(土) 00:27:57.30ID:dB3ZeAcF お題: 同じ文字列がいくつあるか数えるプログラムを作成しなさい。
※出力は出現回数順でソートされている必要はありません。
入力
Hoge
Fuga
Foo
Fuga
Foo
Hoge
Bar
Fuga
出力
Hoge 2
Fuga 3
Foo 2
Bar 1
※出力は出現回数順でソートされている必要はありません。
入力
Hoge
Fuga
Foo
Fuga
Foo
Hoge
Bar
Fuga
出力
Hoge 2
Fuga 3
Foo 2
Bar 1
505デフォルトの名無しさん
2019/09/21(土) 00:39:37.54ID:6wFtRpPA >>504 Perl5
$h{$_}++ for qw{Hoge Fuga Foo Fuga Foo Hoge Bar Fuga};
print "$_ $h{$_}\n" for keys %h;
実行結果
~ $ perl 15_504.pl
Fuga 3
Hoge 2
Bar 1
Foo 2
$h{$_}++ for qw{Hoge Fuga Foo Fuga Foo Hoge Bar Fuga};
print "$_ $h{$_}\n" for keys %h;
実行結果
~ $ perl 15_504.pl
Fuga 3
Hoge 2
Bar 1
Foo 2
506デフォルトの名無しさん
2019/09/21(土) 00:45:45.24ID:Ei1MM/mp507デフォルトの名無しさん
2019/09/21(土) 00:46:28.49ID:YPz6oCKs >>504
cat text
Hoge
Fuga
Foo
Fuga
Foo
Hoge
Bar
Fuga
cat text | perl -ne '$dirs{ s/\R//r } += 1; END{for $key (keys %dirs) {printf "%-4s %s\n", $key, $dirs{$key} } }'
Foo 2
Fuga 3
Bar 1
Hoge 2
cat text
Hoge
Fuga
Foo
Fuga
Foo
Hoge
Bar
Fuga
cat text | perl -ne '$dirs{ s/\R//r } += 1; END{for $key (keys %dirs) {printf "%-4s %s\n", $key, $dirs{$key} } }'
Foo 2
Fuga 3
Bar 1
Hoge 2
508デフォルトの名無しさん
2019/09/21(土) 00:50:19.09ID:Ei1MM/mp うほっ。C++のunordered_mapはオーダー要求しないから、そこを使って最適化物故むとかやるんかいな。
VCとGCCと挙動違う。
VCとGCCと挙動違う。
509デフォルトの名無しさん
2019/09/21(土) 00:59:47.45ID:6wFtRpPA >>496 Perl5
sub f {$_[0] =~ /(\d+)/; $1};
print sort{ f($a) <=> f($b) } <DATA>;
__DATA__
a b c 44
x y 33
z 22
11
実行結果
~ $ perl 15_496.pl
11
z 22
x y 33
a b c 44
sub f {$_[0] =~ /(\d+)/; $1};
print sort{ f($a) <=> f($b) } <DATA>;
__DATA__
a b c 44
x y 33
z 22
11
実行結果
~ $ perl 15_496.pl
11
z 22
x y 33
a b c 44
510デフォルトの名無しさん
2019/09/21(土) 04:32:25.24ID:DxluyDWg511デフォルトの名無しさん
2019/09/21(土) 05:21:21.47ID:DxluyDWg512デフォルトの名無しさん
2019/09/21(土) 05:37:07.36ID:RmdAWOHY513デフォルトの名無しさん
2019/09/21(土) 15:59:00.83ID:uZ0K83Mw >>496 ruby
https://ideone.com/VtI7C7
puts readlines.sort_by {|s| s[/\d+$/].to_i}
>>504 ruby
https://ideone.com/Sw6k17
puts $<.read.scan(/\w+/).group_by(&:itself).map {|a, b| '%s %d' % [a, b.size]}
https://ideone.com/VtI7C7
puts readlines.sort_by {|s| s[/\d+$/].to_i}
>>504 ruby
https://ideone.com/Sw6k17
puts $<.read.scan(/\w+/).group_by(&:itself).map {|a, b| '%s %d' % [a, b.size]}
514デフォルトの名無しさん
2019/09/21(土) 16:12:27.45ID:ZyFDPzPp お題:正の整数が与えられるので、英語の序数に変換せよ
1 => 1st
23 => 23rd
12 => 12th
1 => 1st
23 => 23rd
12 => 12th
515デフォルトの名無しさん
2019/09/21(土) 16:40:16.71ID:6wFtRpPA >>514 Perl5
%o = qw{1 st 2 nd 3 rd};
$o = $o{$_}//'th', print "$_$o\n" for 1..10,12,23;
実行
~ $ perl 15_514.pl
1st
2nd
3rd
4th
5th
6th
7th
8th
9th
10th
12th
23th
%o = qw{1 st 2 nd 3 rd};
$o = $o{$_}//'th', print "$_$o\n" for 1..10,12,23;
実行
~ $ perl 15_514.pl
1st
2nd
3rd
4th
5th
6th
7th
8th
9th
10th
12th
23th
516デフォルトの名無しさん
2019/09/21(土) 16:54:30.22ID:6wFtRpPA517デフォルトの名無しさん
2019/09/21(土) 17:38:27.55ID:uZ0K83Mw518デフォルトの名無しさん
2019/09/21(土) 18:24:27.24ID:9SoaGQ4l519デフォルトの名無しさん
2019/09/21(土) 19:12:36.02ID:AojYT9zq 1st 2nd 3rd
11th 12th 13th
21st 22nd 23rd
101st 102nd 103rd
111th 112th 113th
121st 122nd 123rd
皆さんここらへん大丈夫?
11th 12th 13th
21st 22nd 23rd
101st 102nd 103rd
111th 112th 113th
121st 122nd 123rd
皆さんここらへん大丈夫?
520デフォルトの名無しさん
2019/09/21(土) 19:41:28.17ID:6wFtRpPA >>514 Perl5、>>519 で指摘された誤りの修正 テヘペロ
%h = qw{1 st 2 nd 3 rd};
for (1..4,11,12,13,21,22,23,101,102,103,111,112,113,121,122,123) {
/(\d?)(\d)$/;
printf "$_ => $_%s\n", $1 eq 1 ? 'th' : $h{$2}//'th';
}
実行結果
~ $ perl 15_514.pl
1 => 1st
2 => 2nd
3 => 3rd
4 => 4th
11 => 11th
12 => 12th
13 => 13th
21 => 21st
22 => 22nd
23 => 23rd
101 => 101st
102 => 102nd
103 => 103rd
111 => 111th
112 => 112th
113 => 113th
121 => 121st
122 => 122nd
123 => 123rd
%h = qw{1 st 2 nd 3 rd};
for (1..4,11,12,13,21,22,23,101,102,103,111,112,113,121,122,123) {
/(\d?)(\d)$/;
printf "$_ => $_%s\n", $1 eq 1 ? 'th' : $h{$2}//'th';
}
実行結果
~ $ perl 15_514.pl
1 => 1st
2 => 2nd
3 => 3rd
4 => 4th
11 => 11th
12 => 12th
13 => 13th
21 => 21st
22 => 22nd
23 => 23rd
101 => 101st
102 => 102nd
103 => 103rd
111 => 111th
112 => 112th
113 => 113th
121 => 121st
122 => 122nd
123 => 123rd
521さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/09/21(土) 20:51:54.21ID:BmADEcuL お題: 与えられた西暦年月日を年号年月日に変換しなさい。ただし、変換するのは大正時代から令和までとし、範囲外であればERRORを表示しなさい。
522さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/09/21(土) 21:04:33.10ID:BmADEcuL お題: YYYY/MM/DD形式で与えられた西暦年月日の文字列が正しい年月日を表しているかどうか判定せよ。
523蟻人間 ◆T6xkBnTXz7B0
2019/09/21(土) 21:24:10.22ID:BmADEcuL524デフォルトの名無しさん
2019/09/21(土) 22:12:07.89ID:y97V3EOz >>522 Perl5
use Time::Piece;
for (<DATA>) {
chomp;
my $t;
eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
$t //= 'Invalid';
print "$_: $t\n";
}
__DATA__
1970/01/05
1990/12/31
2019/04/28
2019/05/01
1920/02/29
0000/13/32
実行結果
1970/01/05: Mon Jan 5 00:00:00 1970
1990/12/31: Mon Dec 31 00:00:00 1990
2019/04/28: Sun Apr 28 00:00:00 2019
2019/05/01: Wed May 1 00:00:00 2019
1920/02/29: Sun Feb 29 00:00:00 1920
0000/13/32: Invalid
use Time::Piece;
for (<DATA>) {
chomp;
my $t;
eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
$t //= 'Invalid';
print "$_: $t\n";
}
__DATA__
1970/01/05
1990/12/31
2019/04/28
2019/05/01
1920/02/29
0000/13/32
実行結果
1970/01/05: Mon Jan 5 00:00:00 1970
1990/12/31: Mon Dec 31 00:00:00 1990
2019/04/28: Sun Apr 28 00:00:00 2019
2019/05/01: Wed May 1 00:00:00 2019
1920/02/29: Sun Feb 29 00:00:00 1920
0000/13/32: Invalid
525524
2019/09/21(土) 22:29:42.44ID:y97V3EOz526デフォルトの名無しさん
2019/09/21(土) 22:37:53.07ID:tuxPF//K527蟻人間 ◆T6xkBnTXz7B0
2019/09/21(土) 22:44:04.41ID:7nrsNPcd 令和1年を令和元年にしないといけないという落とし穴があるようだ。
528デフォルトの名無しさん
2019/09/21(土) 22:45:06.50ID:Awwp+36u >>504 Ruby
p $<.map(&:chomp).yield_self{|e| e.uniq.map{|v| [v, e.count(v)]}}
# => [["Hoge", 2], ["Fuga", 3], ["Foo", 2], ["Bar", 1]]
p $<.map(&:chomp).yield_self{|e| e.uniq.map{|v| [v, e.count(v)]}}
# => [["Hoge", 2], ["Fuga", 3], ["Foo", 2], ["Bar", 1]]
529デフォルトの名無しさん
2019/09/21(土) 23:03:57.96ID:tuxPF//K530デフォルトの名無しさん
2019/09/22(日) 01:12:38.88ID:35++XhB6 >>496 Squeak Smalltalk
#('a b c 44' 'x y 33' 'z 22' '11') sortBy: [:x | x splitInteger last] ascending
"=> an OrderedCollection('11' 'z 22' 'x y 33' 'a b c 44') "
#('a b c 44' 'x y 33' 'z 22' '11') sortBy: [:x | x splitInteger last] ascending
"=> an OrderedCollection('11' 'z 22' 'x y 33' 'a b c 44') "
531デフォルトの名無しさん
2019/09/22(日) 01:25:15.35ID:35++XhB6 >>504 Pharo/Squeak Smalltalk
'Hoge
Fuga
Foo
Fuga
Foo
Hoge
Bar
Fuga' lines asBag sortedElements
"=> {'Bar'->1 . 'Foo'->2 . 'Fuga'->3 . 'Hoge'->2} "
'Hoge
Fuga
Foo
Fuga
Foo
Hoge
Bar
Fuga' lines asBag sortedElements
"=> {'Bar'->1 . 'Foo'->2 . 'Fuga'->3 . 'Hoge'->2} "
532デフォルトの名無しさん
2019/09/22(日) 01:56:51.52ID:35++XhB6 >>467 Pharo/Squeak Smalltalk
| fn |
fn := [:str | String streamContents: [:ss |
(str as: RunArray) runsAndValuesDo: [:n :x |
ss nextPut: x; nextPutAll: (n = 1 ifTrue: [''] ifFalse: [n asString])
]
]].
fn value: 'あいうえお'. "=> 'あいうえお' "
fn value: 'ああいいうう'. "=> 'あ2い2う2' "
fn value: 'あいうあいう'. "=> 'あいうあいう' "
| fn |
fn := [:str | String streamContents: [:ss |
(str as: RunArray) runsAndValuesDo: [:n :x |
ss nextPut: x; nextPutAll: (n = 1 ifTrue: [''] ifFalse: [n asString])
]
]].
fn value: 'あいうえお'. "=> 'あいうえお' "
fn value: 'ああいいうう'. "=> 'あ2い2う2' "
fn value: 'あいうあいう'. "=> 'あいうあいう' "
533デフォルトの名無しさん
2019/09/22(日) 08:19:31.82ID:uuB9aO9i >>514 Ruby
suffixes = %w[th st nd rd]
f = -> n {(-(-((n - 10) / 10 % 10) / 9)) * 41 / (n % 10 * 10 + 11) * (n % 10)}
[
1, 2, 3, 4, 11, 12, 13, 21, 22, 23, 101, 102, 103, 111, 112, 113, 121, 122, 123
].each{|v| puts '%1$d => %1$d%2$s' % [v, suffixes[f[v]]]}
# =>
1 => 1st
2 => 2nd
3 => 3rd
4 => 4th
11 => 11th
12 => 12th
13 => 13th
21 => 21st
22 => 22nd
23 => 23rd
101 => 101st
102 => 102nd
103 => 103rd
111 => 111th
112 => 112th
113 => 113th
121 => 121st
122 => 122nd
123 => 123rd
suffixes = %w[th st nd rd]
f = -> n {(-(-((n - 10) / 10 % 10) / 9)) * 41 / (n % 10 * 10 + 11) * (n % 10)}
[
1, 2, 3, 4, 11, 12, 13, 21, 22, 23, 101, 102, 103, 111, 112, 113, 121, 122, 123
].each{|v| puts '%1$d => %1$d%2$s' % [v, suffixes[f[v]]]}
# =>
1 => 1st
2 => 2nd
3 => 3rd
4 => 4th
11 => 11th
12 => 12th
13 => 13th
21 => 21st
22 => 22nd
23 => 23rd
101 => 101st
102 => 102nd
103 => 103rd
111 => 111th
112 => 112th
113 => 113th
121 => 121st
122 => 122nd
123 => 123rd
534デフォルトの名無しさん
2019/09/22(日) 08:57:02.33ID:yY5QhyPL >>533
ruby知らんけどそのfって何?
ruby知らんけどそのfって何?
535デフォルトの名無しさん
2019/09/22(日) 09:05:16.49ID:8u0YwnlN ラムダ式じゃねーの
おれもruby知らんが
おれもruby知らんが
536デフォルトの名無しさん
2019/09/22(日) 09:16:58.95ID:W3ewN8v1 (dolist (n (list 1 2 3 11 12 13 21 22 23 101 102 103 111 112 113 121 122 123) ) (format t "~:R~%" n))
first
second
third
eleventh
twelfth
thirteenth
twenty-first
twenty-second
twenty-third
one hundred first
one hundred second
one hundred third
one hundred eleventh
one hundred twelfth
one hundred thirteenth
one hundred twenty-first
one hundred twenty-second
one hundred twenty-third
first
second
third
eleventh
twelfth
thirteenth
twenty-first
twenty-second
twenty-third
one hundred first
one hundred second
one hundred third
one hundred eleventh
one hundred twelfth
one hundred thirteenth
one hundred twenty-first
one hundred twenty-second
one hundred twenty-third
537デフォルトの名無しさん
2019/09/22(日) 09:21:41.49ID:uuB9aO9i >>534-535
ラムダ式.
任意の自然数 n に対して次の式は n の序数詞の末尾が th なら 0, st なら 1, nd なら 2, rd なら 3 を返す.(除算は切り捨て)
(-(-((n - 10) / 10 % 10) / 9)) * 41 / (n % 10 * 10 + 11) * (n % 10)
ラムダ式.
任意の自然数 n に対して次の式は n の序数詞の末尾が th なら 0, st なら 1, nd なら 2, rd なら 3 を返す.(除算は切り捨て)
(-(-((n - 10) / 10 % 10) / 9)) * 41 / (n % 10 * 10 + 11) * (n % 10)
538デフォルトの名無しさん
2019/09/22(日) 10:14:00.13ID:UtdvR7ZT >>514 Lua
function f(n)
local r,x
x=n%10
if n%100-x==10 or x<1 or x>3 then
r="th"
else
r=({"st","nd","rd"})[x]
end
return n..r
end
function f(n)
local r,x
x=n%10
if n%100-x==10 or x<1 or x>3 then
r="th"
else
r=({"st","nd","rd"})[x]
end
return n..r
end
539デフォルトの名無しさん
2019/09/22(日) 11:43:05.12ID:OEThTvH6540デフォルトの名無しさん
2019/09/22(日) 11:51:21.39ID:OEThTvH6 >>522, >>521 JavaScript
const isValid = seireki => {
let check
try {
check = new Intl
.DateTimeFormat('ja-JP', {year: 'numeric', month: '2-digit', day: '2-digit'})
.format(new Date(seireki))
} catch (e) { return false }
return seireki === check ? true : false
}
const seirekiToWareki = seireki => {
if (!isValid(seireki)) return 'ERROR'
const wareki = new Intl
.DateTimeFormat('ja-JP-u-ca-japanese', {era: 'long', year: 'numeric', month: 'numeric', day: 'numeric'})
.format(new Date(seireki))
.replace(/(正|和|成)1(年)/, '$1元$2')
return ['大正', '昭和', '平成', '令和'].includes(wareki.slice(0, 2)) ? wareki : 'ERROR'
}
`1979/01/05
1990/12/31
2019/04/28
2019/05/01
1920/02/29
0000/13/32`
.split`\n`.forEach(seireki => {console.log(seirekiToWareki(seireki))})
実行結果:
昭和54年1月5日
平成2年12月31日
平成31年4月28日
令和元年5月1日
大正9年2月29日
ERROR
const isValid = seireki => {
let check
try {
check = new Intl
.DateTimeFormat('ja-JP', {year: 'numeric', month: '2-digit', day: '2-digit'})
.format(new Date(seireki))
} catch (e) { return false }
return seireki === check ? true : false
}
const seirekiToWareki = seireki => {
if (!isValid(seireki)) return 'ERROR'
const wareki = new Intl
.DateTimeFormat('ja-JP-u-ca-japanese', {era: 'long', year: 'numeric', month: 'numeric', day: 'numeric'})
.format(new Date(seireki))
.replace(/(正|和|成)1(年)/, '$1元$2')
return ['大正', '昭和', '平成', '令和'].includes(wareki.slice(0, 2)) ? wareki : 'ERROR'
}
`1979/01/05
1990/12/31
2019/04/28
2019/05/01
1920/02/29
0000/13/32`
.split`\n`.forEach(seireki => {console.log(seirekiToWareki(seireki))})
実行結果:
昭和54年1月5日
平成2年12月31日
平成31年4月28日
令和元年5月1日
大正9年2月29日
ERROR
541デフォルトの名無しさん
2019/09/22(日) 14:55:10.69ID:yzO2ACAf >>521-523 Perl5
use Time::Piece; #use Data::Dump 'dump';
@fy = (['2019/05/01', '令和'], ['1989/01/08', '平成'], ['1926/12/25', '昭和'], ['1912/07/30', '大正']);
$$_[0] = Time::Piece->strptime($$_[0], '%Y/%m/%d') for @fy;
for (qw{1970/01/05 1990/12/31 2019/04/28 2019/05/01 1920/02/29 1912/07/29 2019/02/29}) {
my ($t, $t0, $era, $nen);
eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
if ($t and $t->strftime('%Y/%m/%d') eq $_) {
do {($t0, $era) = @$_, last if $$_[0] <= $t} for @fy;
if ($t0) {
$nen = ($y = $t->year - $t0->year, $y ? $y + 1 : '元').'年' if $t0;
$t = "$era$nen".$t->mon.'月'.$t->mday.'日';
} else {
$t = 'ERROR';
}
} else {
$t = 'Invalid';
}
print "$_: $t\n";
}
実行結果
~ $ perl 15_521.pl
1970/01/05: 昭和45年1月5日
1990/12/31: 平成2年12月31日
2019/04/28: 平成31年4月28日
2019/05/01: 令和元年5月1日
1920/02/29: 大正9年2月29日
1912/07/29: ERROR
2019/02/29: Invalid
use Time::Piece; #use Data::Dump 'dump';
@fy = (['2019/05/01', '令和'], ['1989/01/08', '平成'], ['1926/12/25', '昭和'], ['1912/07/30', '大正']);
$$_[0] = Time::Piece->strptime($$_[0], '%Y/%m/%d') for @fy;
for (qw{1970/01/05 1990/12/31 2019/04/28 2019/05/01 1920/02/29 1912/07/29 2019/02/29}) {
my ($t, $t0, $era, $nen);
eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
if ($t and $t->strftime('%Y/%m/%d') eq $_) {
do {($t0, $era) = @$_, last if $$_[0] <= $t} for @fy;
if ($t0) {
$nen = ($y = $t->year - $t0->year, $y ? $y + 1 : '元').'年' if $t0;
$t = "$era$nen".$t->mon.'月'.$t->mday.'日';
} else {
$t = 'ERROR';
}
} else {
$t = 'Invalid';
}
print "$_: $t\n";
}
実行結果
~ $ perl 15_521.pl
1970/01/05: 昭和45年1月5日
1990/12/31: 平成2年12月31日
2019/04/28: 平成31年4月28日
2019/05/01: 令和元年5月1日
1920/02/29: 大正9年2月29日
1912/07/29: ERROR
2019/02/29: Invalid
542デフォルトの名無しさん
2019/09/22(日) 14:59:46.00ID:yzO2ACAf543デフォルトの名無しさん
2019/09/22(日) 15:13:26.78ID:yzO2ACAf544デフォルトの名無しさん
2019/09/22(日) 16:19:32.48ID:iYBBHKU1 https://github.com/systemd/systemd/blob/82d1264048a3768fb8238387810f78c5d3912058/src/journal/journalctl.c#L2405-L2461
このif elseの羅列をリファクタリングしてください(´・ω・`)
このif elseの羅列をリファクタリングしてください(´・ω・`)
545デフォルトの名無しさん
2019/09/22(日) 17:24:37.46ID:W3ewN8v1 無駄に否定演算子で分かりにくくしている
if (!arg_reverse)
r = sd_journal_next_skip(j, 1 + after_cursor);
else
r = sd_journal_previous_skip(j, 1 + after_cursor);
if (!arg_reverse)
r = sd_journal_next_skip(j, 1 + after_cursor);
else
r = sd_journal_previous_skip(j, 1 + after_cursor);
546デフォルトの名無しさん
2019/09/22(日) 17:45:39.81ID:vTpi5vA1547デフォルトの名無しさん
2019/09/22(日) 18:17:09.14ID:yzO2ACAf >>521 Perl5 >>541 を少しコンパクトにしてみた
use Time::Piece;
@fy = (['2019/05/01','令和'],['1989/01/08','平成'],['1926/12/25','昭和'],['1912/07/30','大正']);
$$_[0] = Time::Piece->strptime($$_[0], '%Y/%m/%d') for @fy;
for (qw{1970/01/05 1990/12/31 2019/04/28 2019/05/01 1920/02/29 1912/07/29 2019/02/29}) {
my ($t, $t0, $era, $nen);
eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
$s = 'Invalid';
if ($t and $t->strftime('%Y/%m/%d') eq $_) {
do {($t0, $era) = @$_, last if $$_[0] <= $t} for @fy;
$s = 'ERROR';
if ($t0) {
$nen = ($y = $t->year - $t0->year, $y ? $y + 1 : '元').'年';
$s = "$era$nen" . $t->mon . '月' . $t->mday . '日';
}
}
print "$_: $s\n";
}
use Time::Piece;
@fy = (['2019/05/01','令和'],['1989/01/08','平成'],['1926/12/25','昭和'],['1912/07/30','大正']);
$$_[0] = Time::Piece->strptime($$_[0], '%Y/%m/%d') for @fy;
for (qw{1970/01/05 1990/12/31 2019/04/28 2019/05/01 1920/02/29 1912/07/29 2019/02/29}) {
my ($t, $t0, $era, $nen);
eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
$s = 'Invalid';
if ($t and $t->strftime('%Y/%m/%d') eq $_) {
do {($t0, $era) = @$_, last if $$_[0] <= $t} for @fy;
$s = 'ERROR';
if ($t0) {
$nen = ($y = $t->year - $t0->year, $y ? $y + 1 : '元').'年';
$s = "$era$nen" . $t->mon . '月' . $t->mday . '日';
}
}
print "$_: $s\n";
}
548蟻人間 ◆T6xkBnTXz7B0
2019/09/22(日) 20:58:52.87ID:Pb++lLAf お題: マイドキュメントにある全てのファイルの更新日時を取得し、曜日ごとに平均時刻を集計せよ。
549デフォルトの名無しさん
2019/09/22(日) 21:11:37.57ID:PDMeYfrK マイドキュメントがなかった
550蟻人間 ◆T6xkBnTXz7B0
2019/09/22(日) 21:23:02.16ID:Pb++lLAf お題: あるフォルダにある全てのファイルの更新日時を全て同じ日時にリセットせよ。
551デフォルトの名無しさん
2019/09/22(日) 21:30:08.53ID:WdPSTicU552蟻人間 ◆T6xkBnTXz7B0
2019/09/22(日) 21:35:34.35ID:rZK31NHQ ※未来の日時にするとMakefileなどで不具合の原因になるかもしれないので、やめよう。必ず過去の日付で。
553デフォルトの名無しさん
2019/09/22(日) 21:40:33.36ID:2VFOPinw >>1
◆T6も書き込み禁止
◆T6も書き込み禁止
554蟻人間 ◆T6xkBnTXz7B0
2019/09/22(日) 22:00:19.44ID:rZK31NHQ555デフォルトの名無しさん
2019/09/22(日) 22:02:04.64ID:35++XhB6 とりあえずNGにした
556デフォルトの名無しさん
2019/09/22(日) 22:03:45.82ID:35++XhB6 うっかり回答しないように連鎖にしとく方がいいか
557デフォルトの名無しさん
2019/09/22(日) 22:23:23.82ID:W3ewN8v1 >>548
\ls -l --time-style=+%a:%T ~/ | perl -lane 'print $F[5]' | sed "/^$/d" | perl -F: -lane '{++$i{$F[0]}; $acc{$F[0]} += $F[1]*3600 + $F[2] *60 + $F[3] }END{ print "$_ ". $acc{$_}/$i{$_} . " seconds" for keys %acc}'
日 49262.7 seconds
金 52984.3125 seconds
火 56316.8461538462 seconds
木 47056.3333333333 seconds
月 53660.7894736842 seconds
土 49998.1538461538 seconds
水 48117.5 seconds
\ls -l --time-style=+%a:%T ~/ | perl -lane 'print $F[5]' | sed "/^$/d" | perl -F: -lane '{++$i{$F[0]}; $acc{$F[0]} += $F[1]*3600 + $F[2] *60 + $F[3] }END{ print "$_ ". $acc{$_}/$i{$_} . " seconds" for keys %acc}'
日 49262.7 seconds
金 52984.3125 seconds
火 56316.8461538462 seconds
木 47056.3333333333 seconds
月 53660.7894736842 seconds
土 49998.1538461538 seconds
水 48117.5 seconds
558デフォルトの名無しさん
2019/09/22(日) 22:24:24.30ID:W3ewN8v1 スルーだったか
559蟻人間 ◆T6xkBnTXz7B0
2019/09/22(日) 22:44:17.87ID:rZK31NHQ お題: 自分のプログラムファイルが何バイトかを表示せよ。
560デフォルトの名無しさん
2019/09/22(日) 22:48:43.53ID:Yf8464Y3 >>548 Perl5、なお>>550は(utimeを使えばできますが)回答は作成いたしません
use File::Find 'find';
sub hier {
my $mtime = (lstat)[9];
push @epochs, $mtime if -f _;
}
find({wanted => \&hier}, "$ENV{USERPROFILE}/My Documents");
@w = ([],[],[],[],[],[],[]);
for (@epochs) {
($sec, $min, $hour, $wday) = (localtime $_)[0..2,6];
push @{$w[$wday]}, 3600*$hour + 60*$min + sec;
}
use List::Util 'sum';
use Time::Piece;
@dw = qw(日 月 火 水 木 金 土);
for (0..6) {
$n = @{$w[$_]};
$mean = sum(@{$w[$_]}) / $n;
$s = Time::Piece->new($mean);
printf "$dw[$_](%4d): %s\n", $n, $s->hms;
}
実行結果
~ $ perl 15_548.pl
日( 104): 21:04:43
月( 94): 22:57:25
火( 46): 21:41:46
水( 298): 12:55:47
木( 322): 05:04:39
金(2020): 07:01:42
土(1650): 22:50:54
use File::Find 'find';
sub hier {
my $mtime = (lstat)[9];
push @epochs, $mtime if -f _;
}
find({wanted => \&hier}, "$ENV{USERPROFILE}/My Documents");
@w = ([],[],[],[],[],[],[]);
for (@epochs) {
($sec, $min, $hour, $wday) = (localtime $_)[0..2,6];
push @{$w[$wday]}, 3600*$hour + 60*$min + sec;
}
use List::Util 'sum';
use Time::Piece;
@dw = qw(日 月 火 水 木 金 土);
for (0..6) {
$n = @{$w[$_]};
$mean = sum(@{$w[$_]}) / $n;
$s = Time::Piece->new($mean);
printf "$dw[$_](%4d): %s\n", $n, $s->hms;
}
実行結果
~ $ perl 15_548.pl
日( 104): 21:04:43
月( 94): 22:57:25
火( 46): 21:41:46
水( 298): 12:55:47
木( 322): 05:04:39
金(2020): 07:01:42
土(1650): 22:50:54
561デフォルトの名無しさん
2019/09/22(日) 22:50:50.35ID:JOdgUuSI >>548
馬鹿っぽ
馬鹿っぽ
562デフォルトの名無しさん
2019/09/22(日) 22:53:39.99ID:JOdgUuSI 蟻人間、プログラミングに興味を持ち始めた中学生臭がすごい
563蟻人間 ◆T6xkBnTXz7B0
2019/09/22(日) 23:00:26.05ID:rZK31NHQ >>559
はいはい、模範解答出せばいいんでしょ?
// C++/Win32
#include <windows.h>
#include <stdio.h>
int main(void)
{
char buf[MAX_PATH];
GetModuleFileNameA(NULL, buf, MAX_PATH);
WIN32_FIND_DATAA find;
HANDLE hFind = FindFirstFileA(buf, &find);
printf("%ld bytes", find.nFileSizeLow);
FindClose(hFind);
return 0;
}
はいはい、模範解答出せばいいんでしょ?
// C++/Win32
#include <windows.h>
#include <stdio.h>
int main(void)
{
char buf[MAX_PATH];
GetModuleFileNameA(NULL, buf, MAX_PATH);
WIN32_FIND_DATAA find;
HANDLE hFind = FindFirstFileA(buf, &find);
printf("%ld bytes", find.nFileSizeLow);
FindClose(hFind);
return 0;
}
564蟻人間 ◆T6xkBnTXz7B0
2019/09/22(日) 23:03:43.50ID:rZK31NHQ >>559 別解ね。
/* C */
#include <stdio.h>
int main(int argc, char **argv)
{
FILE *fp = fopen(argv[0], "rb");
fseek(fp, 0, SEEK_END);
printf("%ld bytes\n", ftell(fp));
fclose(fp);
return 0;
}
/* C */
#include <stdio.h>
int main(int argc, char **argv)
{
FILE *fp = fopen(argv[0], "rb");
fseek(fp, 0, SEEK_END);
printf("%ld bytes\n", ftell(fp));
fclose(fp);
return 0;
}
565デフォルトの名無しさん
2019/09/22(日) 23:10:48.88ID:Yf8464Y3566デフォルトの名無しさん
2019/09/22(日) 23:25:59.86ID:35++XhB6 >>514 Pharo/Squeak Smalltalk
| suffixes fn |
suffixes := #(st nd rd), (Array new: 7 withAll: #th).
suffixes := (0 to: 9) gather: [:idx | suffixes].
suffixes from: 11 to: 13 put: #th.
fn := [:n | n asString, (suffixes atWrap: n)].
fn value: 1. "=> '1st' "
fn value: 23. "=> '23rd' "
fn value: 12. "=> '12th' "
| suffixes fn |
suffixes := #(st nd rd), (Array new: 7 withAll: #th).
suffixes := (0 to: 9) gather: [:idx | suffixes].
suffixes from: 11 to: 13 put: #th.
fn := [:n | n asString, (suffixes atWrap: n)].
fn value: 1. "=> '1st' "
fn value: 23. "=> '23rd' "
fn value: 12. "=> '12th' "
567デフォルトの名無しさん
2019/09/22(日) 23:32:48.92ID:Yf8464Y3 >>560 修正、0割回避、localtimeが返すepochのmtimeはUTCベースなのでTZ設定追加し9時間ずれ対策
$ENV{TZ} = 'UTC';
use File::Find 'find';
use Time::Piece;
sub hier {
my $mtime = (lstat)[9];
push @epochs, $mtime if -f _;
}
find({wanted => \&hier}, "$ENV{USERPROFILE}/My Documents");
print "Number of files = " . @epochs . "\n";
@w = ([],[],[],[],[],[],[]);
for (@epochs) {
($sec, $min, $hour, $wday) = (localtime $_)[0..2,6];
push @{$w[$wday]}, 3600*$hour + 60*$min + sec;
}
use List::Util 'sum';
@dw = qw(日 月 火 水 木 金 土);
for (0..6) {
$n = @{$w[$_]};
if ($n) {
$mean = sum(@{$w[$_]}) / $n;
$s = Time::Piece->new($mean);
printf "$dw[$_](%4d): %s\n", $n, $s->hms;
}
}
$ENV{TZ} = 'UTC';
use File::Find 'find';
use Time::Piece;
sub hier {
my $mtime = (lstat)[9];
push @epochs, $mtime if -f _;
}
find({wanted => \&hier}, "$ENV{USERPROFILE}/My Documents");
print "Number of files = " . @epochs . "\n";
@w = ([],[],[],[],[],[],[]);
for (@epochs) {
($sec, $min, $hour, $wday) = (localtime $_)[0..2,6];
push @{$w[$wday]}, 3600*$hour + 60*$min + sec;
}
use List::Util 'sum';
@dw = qw(日 月 火 水 木 金 土);
for (0..6) {
$n = @{$w[$_]};
if ($n) {
$mean = sum(@{$w[$_]}) / $n;
$s = Time::Piece->new($mean);
printf "$dw[$_](%4d): %s\n", $n, $s->hms;
}
}
568蟻人間 ◆T6xkBnTXz7B0
2019/09/23(月) 00:23:07.10ID:JAc5gnVl >>548
出題の狙い。犯罪捜査において被疑者または関係者の生活パターンを知りたいときに、パソコンのファイルの日時の統計のデジタル鑑識により、パソコンの使用実態が類推可能であることを示すものである。
出題の狙い。犯罪捜査において被疑者または関係者の生活パターンを知りたいときに、パソコンのファイルの日時の統計のデジタル鑑識により、パソコンの使用実態が類推可能であることを示すものである。
569デフォルトの名無しさん
2019/09/23(月) 00:28:46.25ID:GyCF+Do4 出勤とか寝る時間があまり変わらないという仮定で
同一人物の疑いがある2つのコテハンを
数百スレ分から時間別書き込み頻度から検証したことがあるが
それにくらべると得られる情報少なすぎて草
同一人物の疑いがある2つのコテハンを
数百スレ分から時間別書き込み頻度から検証したことがあるが
それにくらべると得られる情報少なすぎて草
570デフォルトの名無しさん
2019/09/23(月) 00:30:37.56ID:iF+DbCXr >>568
馬鹿っぽ
馬鹿っぽ
571デフォルトの名無しさん
2019/09/23(月) 01:01:29.40ID:ZSRjXCoe572デフォルトの名無しさん
2019/09/23(月) 01:43:06.73ID:ZSRjXCoe >>567
そうじゃねぇだろ、file systemのmtimeはUTCベースなのに
わざわざlocaltimeでTZ=JST_9の日時に変換してから
時分秒だけTime::Pieceに食べさせるから
GMTとして解釈され9時間ずれたんだよ。
それを回避するためTZ環境変数にUTCを設定するとは
何たる尻の青い、くちばしの黄色い、まだ駆け出しの青二才、未熟者
そうじゃねぇだろ、file systemのmtimeはUTCベースなのに
わざわざlocaltimeでTZ=JST_9の日時に変換してから
時分秒だけTime::Pieceに食べさせるから
GMTとして解釈され9時間ずれたんだよ。
それを回避するためTZ環境変数にUTCを設定するとは
何たる尻の青い、くちばしの黄色い、まだ駆け出しの青二才、未熟者
573デフォルトの名無しさん
2019/09/23(月) 04:00:12.20ID:Sp7ybd6s >>559 Common Lisp
https://ideone.com/idfFJM (sbcl)
https://ideone.com/8G7hUD (clisp)
ideoneは、sbclの場合は compile-file で作成したファイルを実行しているらしく
結果が異なっているのはそのため
https://ideone.com/idfFJM (sbcl)
https://ideone.com/8G7hUD (clisp)
ideoneは、sbclの場合は compile-file で作成したファイルを実行しているらしく
結果が異なっているのはそのため
574蟻人間 ◆T6xkBnTXz7B0
2019/09/23(月) 12:05:34.14ID:Pxp3zDR1575デフォルトの名無しさん
2019/09/23(月) 12:49:49.08ID:iF+DbCXr 模範解答(汚ねえスパゲティ)
576デフォルトの名無しさん
2019/09/23(月) 13:54:34.61ID:2RLjyW/B577デフォルトの名無しさん
2019/09/27(金) 01:42:52.78ID:/3CUbuCi578デフォルトの名無しさん
2019/09/27(金) 02:44:56.39ID:/3CUbuCi579デフォルトの名無しさん
2019/09/27(金) 02:50:14.35ID:/3CUbuCi >>550
シェルスクリプト (find, touch コマンド使用)
2019/09/27 02:48:00 に合わせる場合
#!/bin/sh
find あるフォルダ -type f -exec touch -t 201909270248.00 {} \;
シェルスクリプト (find, touch コマンド使用)
2019/09/27 02:48:00 に合わせる場合
#!/bin/sh
find あるフォルダ -type f -exec touch -t 201909270248.00 {} \;
580デフォルトの名無しさん
2019/09/27(金) 19:49:32.99ID:jf7tgLq0 >>548
Powershell
ls ([Environment]::GetFolderPath(5)) -Recurse -Force |? {!$_.PSIsContainer} `
|% {$_.LastWriteTime} | sort {[int]$_.DayOfWeek} | group {"{0:ddd}" -f $_} `
|% {"{0}{1,10:T}" -f $_.Name, [DateTime][Int64]($_.Group |% {$_.TimeOfDay.Ticks} | measure -Average).Average}
Powershell
ls ([Environment]::GetFolderPath(5)) -Recurse -Force |? {!$_.PSIsContainer} `
|% {$_.LastWriteTime} | sort {[int]$_.DayOfWeek} | group {"{0:ddd}" -f $_} `
|% {"{0}{1,10:T}" -f $_.Name, [DateTime][Int64]($_.Group |% {$_.TimeOfDay.Ticks} | measure -Average).Average}
581デフォルトの名無しさん
2019/09/27(金) 19:57:07.16ID:jf7tgLq0 >>580をコピペで実行するときは、`の後の半角空白を削除しないとエラーになる。
582デフォルトの名無しさん
2019/09/27(金) 21:29:22.88ID:vBAnAZ37 お題:リスト等の重複する要素を削除し、大きい順に並び替えよ
[3, 1, 4, 1, 5]
↓
[5, 4, 3, 1]
java
https://ideone.com/8VN6hL
rust
https://ideone.com/igyvob
ruby
https://ideone.com/VsemVf
octave
https://ideone.com/FHue1K
[3, 1, 4, 1, 5]
↓
[5, 4, 3, 1]
java
https://ideone.com/8VN6hL
rust
https://ideone.com/igyvob
ruby
https://ideone.com/VsemVf
octave
https://ideone.com/FHue1K
583デフォルトの名無しさん
2019/09/27(金) 22:41:14.90ID:kWPPTdrf584デフォルトの名無しさん
2019/09/27(金) 23:07:29.28ID:Z4UqEtTG >>582 javascript
[...new Set([3, 1, 4, 1, 5])].sort().reverse()
[...new Set([3, 1, 4, 1, 5])].sort().reverse()
585デフォルトの名無しさん
2019/09/28(土) 00:13:52.50ID:OLAr2jSy586デフォルトの名無しさん
2019/09/28(土) 00:23:41.09ID:gcUBCYXO >>582 Perl5 二回答
%h = map{$_=>1} qw(3 1 4 1 5);
@a = sort{$b<=>$a} keys %h;
print "@a\n";
use List::Util 1.45 'uniq';
@a = uniq sort{$b<=>$a} qw(3 1 4 1 5);
print "@a\n"
実行結果、いずれも
~ $ perl 15_582.pl
5 4 3 1
%h = map{$_=>1} qw(3 1 4 1 5);
@a = sort{$b<=>$a} keys %h;
print "@a\n";
use List::Util 1.45 'uniq';
@a = uniq sort{$b<=>$a} qw(3 1 4 1 5);
print "@a\n"
実行結果、いずれも
~ $ perl 15_582.pl
5 4 3 1
587デフォルトの名無しさん
2019/09/28(土) 00:52:45.19ID:HcOq9X6n588デフォルトの名無しさん
2019/09/28(土) 01:09:55.39ID:HcOq9X6n お題: 指定のディレクトリ以下にある全てのファイルの更新日時を取得し、曜日毎、及び時間毎にしてグラフにして出せ。
これは同じ曜日の同じ時間で更新されているファイルのカウントということね。例えば今週と先週の土曜日の7:00代の更新ファイルが一つづつあれば土曜日7時代のカウントが2になる。
で、グラフにする時は表示方法はなんでもいいので例えばテキストでアスタリスク2個で出す。(後でこちらでもプログラム作るのでそれ参考にしてもいい)。
ディレクトリの指定方法は普通なら引数での指定が良いだろうけどプログラムに埋め込んでも標準入力やファイルから読み込んでも何でもいい。それはこのお題では肝心な事ではないので。
これは同じ曜日の同じ時間で更新されているファイルのカウントということね。例えば今週と先週の土曜日の7:00代の更新ファイルが一つづつあれば土曜日7時代のカウントが2になる。
で、グラフにする時は表示方法はなんでもいいので例えばテキストでアスタリスク2個で出す。(後でこちらでもプログラム作るのでそれ参考にしてもいい)。
ディレクトリの指定方法は普通なら引数での指定が良いだろうけどプログラムに埋め込んでも標準入力やファイルから読み込んでも何でもいい。それはこのお題では肝心な事ではないので。
589デフォルトの名無しさん
2019/09/28(土) 02:06:50.36ID:63IK4172 それだったらファイル、ディレクトリ操作は除外してランダムに日時発生させるとかでいいだろ
機種依存するので
ランダム生成は依存しない
機種依存するので
ランダム生成は依存しない
590デフォルトの名無しさん
2019/09/28(土) 03:07:13.28ID:HcOq9X6n591デフォルトの名無しさん
2019/09/28(土) 03:08:06.06ID:HcOq9X6n >>589
?
?
592デフォルトの名無しさん
2019/09/28(土) 03:10:19.21ID:63IK4172 unixタイムとかで、日時と整数は一対一対応してるだろ
ランダム生成で日時は作れる
ランダム生成で日時は作れる
594デフォルトの名無しさん
2019/09/28(土) 03:30:16.66ID:63IK4172 何番と限らず日時と整数は一対一できるから日時が関係するあらゆる問題
596デフォルトの名無しさん
2019/09/28(土) 04:47:52.20ID:HcOq9X6n597デフォルトの名無しさん
2019/09/28(土) 10:58:14.32ID:bVbqLRNA >>582
@Mathematica
deleteDuplicatesSort[lst_] := lst //
DeleteDuplicates //
Sort[#, Greater] & ;
In[1] := deleteDuplicatesSort[{3, 1, 4, 1, 5}]
Out[1] = {5, 4, 3, 1}
# Mathematica のカーネルがいつの間にか無償開放されてた!
#
# 「「Mathematica」や“Wolfram|Alpha”の核「Wolfram Engine」が開発者向けに無償開放」
# https://forest.watch.impress.co.jp/docs/news/1186454.html
@Mathematica
deleteDuplicatesSort[lst_] := lst //
DeleteDuplicates //
Sort[#, Greater] & ;
In[1] := deleteDuplicatesSort[{3, 1, 4, 1, 5}]
Out[1] = {5, 4, 3, 1}
# Mathematica のカーネルがいつの間にか無償開放されてた!
#
# 「「Mathematica」や“Wolfram|Alpha”の核「Wolfram Engine」が開発者向けに無償開放」
# https://forest.watch.impress.co.jp/docs/news/1186454.html
598デフォルトの名無しさん
2019/09/28(土) 15:09:30.05ID:E6lKnilk C++標準のファイルシステムでは、パスは取れるが、時間を取得する関数がないっぽい。
599デフォルトの名無しさん
2019/09/28(土) 15:18:04.57ID:E6lKnilk あぁ、あったわ。C++17で入ったからまだ不明瞭だ。自分にとって。
600デフォルトの名無しさん
2019/09/28(土) 15:36:35.57ID:E6lKnilk601デフォルトの名無しさん
2019/09/28(土) 16:35:23.18ID:E6lKnilk602デフォルトの名無しさん
2019/09/28(土) 21:56:43.99ID:yaf8uxdw >>588
PowerShell
$path = [Environment]::GetFolderPath(5)
$all = ls $path -Recurse |? {!$_.PSIsContainer} |% {$_.LastWriteTime}
$max = [Math]::Max(10, ($all | group DayOfWeek, Hour | measure Count -Max).Maximum)
"時" + (("日月火水木金土" -split "") -join "|".PadRight(9))
"--+" + ("-" * 10 + "+") * 7
$y = $all | group Hour -AsHashTable
0..23 |% {
if ($y[$_]) {
$x = $y[$_] | group {[int]$_.DayOfWeek} -AsHashTable
} else {
$x = @()
}
$line = "{0,2}" -f $_
0..6 |% {
$n = ($x[$_].Count * 10 + [int]$max / 2 - 1) / $max
$line += "|" + ("*" * $n).PadRight(10)
}
$line + "|"
}
PowerShell
$path = [Environment]::GetFolderPath(5)
$all = ls $path -Recurse |? {!$_.PSIsContainer} |% {$_.LastWriteTime}
$max = [Math]::Max(10, ($all | group DayOfWeek, Hour | measure Count -Max).Maximum)
"時" + (("日月火水木金土" -split "") -join "|".PadRight(9))
"--+" + ("-" * 10 + "+") * 7
$y = $all | group Hour -AsHashTable
0..23 |% {
if ($y[$_]) {
$x = $y[$_] | group {[int]$_.DayOfWeek} -AsHashTable
} else {
$x = @()
}
$line = "{0,2}" -f $_
0..6 |% {
$n = ($x[$_].Count * 10 + [int]$max / 2 - 1) / $max
$line += "|" + ("*" * $n).PadRight(10)
}
$line + "|"
}
603蟻人間 ◆T6xkBnTXz7B0
2019/09/29(日) 02:59:00.33ID:8mEp/ii8 お題: 地球上の2地点を緯度・経度で指定すると、(球面上の)直線距離を求めてくれるプログラム。
地球がほぼ球体であることを仮定してもよい。
地球がほぼ球体であることを仮定してもよい。
604蟻人間 ◆T6xkBnTXz7B0
2019/09/29(日) 03:04:31.30ID:8mEp/ii8 ロンドンからニューヨーク。
北京から台湾。
ニュージーランドからトルコ。
北京から台湾。
ニュージーランドからトルコ。
605蟻人間 ◆T6xkBnTXz7B0
2019/09/29(日) 03:16:51.58ID:8mEp/ii8606蟻人間 ◆T6xkBnTXz7B0
2019/09/29(日) 03:55:31.74ID:8mEp/ii8 ヒント: 度をラジアンに変換。dの公式に代入する。緯度経度はグーグル マップで調べる。コサインの逆関数はアークコサイン。
607デフォルトの名無しさん
2019/09/29(日) 09:16:55.67ID:GG+B8frl 数学の問題どすな
地球半径をR、緯度をΦ、経度をΘとすると
地表上の点Pの座標(x,y,z)は
(x,y,z)=R(cosΦcosΘ,cosΦsinΘ,sinΦ)
(R,0,0)は赤道上の東(西)経0度の地点
(ギニア湾 ガーナ アクラ沖約600km)
(0,R,0)も赤道上の東(西)経180度の地点
(太平洋 ナウル島から約1450km)
二地点の座標をベクトルに見立て
内積をR^2で割って逆余弦関数に
与えた結果にRを掛けたモノが答え
地球半径をR、緯度をΦ、経度をΘとすると
地表上の点Pの座標(x,y,z)は
(x,y,z)=R(cosΦcosΘ,cosΦsinΘ,sinΦ)
(R,0,0)は赤道上の東(西)経0度の地点
(ギニア湾 ガーナ アクラ沖約600km)
(0,R,0)も赤道上の東(西)経180度の地点
(太平洋 ナウル島から約1450km)
二地点の座標をベクトルに見立て
内積をR^2で割って逆余弦関数に
与えた結果にRを掛けたモノが答え
608デフォルトの名無しさん
2019/09/29(日) 09:23:23.08ID:GG+B8frl ちょい間違った
(0,R,0)は東経90度の赤道上の太平洋上の地点で
スリランカ・コロンボから約1360kmの地点
(-R,0,0)がナウル島から1450kmの地点
(0,-R,0)はガラパゴス諸島から20〜25km程度の
太平洋上の地点
(0,R,0)は東経90度の赤道上の太平洋上の地点で
スリランカ・コロンボから約1360kmの地点
(-R,0,0)がナウル島から1450kmの地点
(0,-R,0)はガラパゴス諸島から20〜25km程度の
太平洋上の地点
609デフォルトの名無しさん
2019/09/29(日) 09:25:23.90ID:GG+B8frl 表計算ソフトを使うのが効率的ね
610デフォルトの名無しさん
2019/09/29(日) 10:48:24.98ID:UzLHlBWt 地球を球に近似する時点でナンセンス。解く価値無し
611デフォルトの名無しさん
2019/09/29(日) 11:06:06.70ID:VkSI6pCv 仮定してもよい なんだから球に近似しないで書けばいい話じゃね?
612デフォルトの名無しさん
2019/09/29(日) 12:00:03.35ID:bEy1wMJX >>603 大円距離の問題なんだから、距離が一番短くなる2点間の長さとすべき、
great-circular distance
>>605 の数値を使い
地球の半径を 6378.137 km
2点の緯度経度
139.74477,35.6544 ,
39.8261, 21.4225
Python
https://ideone.com/qp1Fer
答え 9,491.28 km
great-circular distance
>>605 の数値を使い
地球の半径を 6378.137 km
2点の緯度経度
139.74477,35.6544 ,
39.8261, 21.4225
Python
https://ideone.com/qp1Fer
答え 9,491.28 km
613デフォルトの名無しさん
2019/09/29(日) 12:03:30.83ID:bEy1wMJX >>612 2点間の経度緯度 の間違い
614デフォルトの名無しさん
2019/09/29(日) 12:33:05.14ID:mYJaebwB >>603-6
use Math::Trig qw{deg2rad acos};
($lat1, $long1) = map{deg2rad $_} (51.507448,-0.1287243); # ロンドン ウエストミンスター チャールズ1世騎馬像
($lat2, $long2) = map{deg2rad $_} (40.712775,-74.005973); # ニューヨークCity Park Hall(市庁舎)
$theta = $long1 - $long2;
$dist = sin($lat1) * sin($lat2) + cos($lat1) * cos($lat2) * cos($theta);
$dist = 6378.137 * acos($dist);
printf "%.2f[Km]\n", $dist;
実行結果
~ $ perl 15_604.pl
5576.40[Km]
cf.)
https://www.geodatasource.com/developers/perl
use Math::Trig qw{deg2rad acos};
($lat1, $long1) = map{deg2rad $_} (51.507448,-0.1287243); # ロンドン ウエストミンスター チャールズ1世騎馬像
($lat2, $long2) = map{deg2rad $_} (40.712775,-74.005973); # ニューヨークCity Park Hall(市庁舎)
$theta = $long1 - $long2;
$dist = sin($lat1) * sin($lat2) + cos($lat1) * cos($lat2) * cos($theta);
$dist = 6378.137 * acos($dist);
printf "%.2f[Km]\n", $dist;
実行結果
~ $ perl 15_604.pl
5576.40[Km]
cf.)
https://www.geodatasource.com/developers/perl
615デフォルトの名無しさん
2019/09/29(日) 12:34:14.75ID:mYJaebwB616デフォルトの名無しさん
2019/09/29(日) 19:44:37.93ID:aa2vZ2v/ お題:8queenで面白いパターンを見つけよ。
617デフォルトの名無しさん
2019/09/29(日) 23:06:17.59ID:OI4EUI6E お題:もっと面白いお題を考えよ。
618デフォルトの名無しさん
2019/09/29(日) 23:45:54.79ID:m0Odf/xn619デフォルトの名無しさん
2019/09/29(日) 23:51:59.00ID:k4CvVXqN >>616
面白いってひどく曖昧だな
面白いってひどく曖昧だな
620蟻人間 ◆T6xkBnTXz7B0
2019/09/30(月) 02:22:51.44ID:i5LhrskR お題: サイズ15x15の空白マス('_')がある。黒マス('#')をいくつかランダムに置いて、空白マスが縦または横向きに5マス連続に並ばないようにしたい。ただし、
1. なるべく早く黒マスを配置せよ。
2. 実行のたびに常にランダムにまんべんなく配置せよ。
3. 黒マスが縦または横に隣り合ってはいけない。
4. (ア)全て並べる、そして(イ)並びが正しいか検証する、の(ア)と(イ)を15回繰り返してかかる時間を実測せよ。
1. なるべく早く黒マスを配置せよ。
2. 実行のたびに常にランダムにまんべんなく配置せよ。
3. 黒マスが縦または横に隣り合ってはいけない。
4. (ア)全て並べる、そして(イ)並びが正しいか検証する、の(ア)と(イ)を15回繰り返してかかる時間を実測せよ。
621デフォルトの名無しさん
2019/09/30(月) 09:19:26.74ID:eZfyppwl622デフォルトの名無しさん
2019/09/30(月) 10:08:08.98ID:4XC9Ks9U >>620
馬鹿っぽ
馬鹿っぽ
623デフォルトの名無しさん
2019/09/30(月) 16:46:23.79ID:ypiuCBLp >>620
https://ideone.com/FggLLg
C++。ふえ〜。円の当たり判定しようと思ったのに、うごかないよ〜。
コード間違ってるのか、数学ぶっ壊れたのかわからん。
デバッグしてくれる人募集。
コード間違ってるんやったら、俺の認識限界がおかしいな。
https://ideone.com/FggLLg
C++。ふえ〜。円の当たり判定しようと思ったのに、うごかないよ〜。
コード間違ってるのか、数学ぶっ壊れたのかわからん。
デバッグしてくれる人募集。
コード間違ってるんやったら、俺の認識限界がおかしいな。
624デフォルトの名無しさん
2019/09/30(月) 17:15:46.44ID:ypiuCBLp625デフォルトの名無しさん
2019/09/30(月) 17:20:40.68ID:ypiuCBLp じっそうじかんは多分2時間以内だ。
626デフォルトの名無しさん
2019/09/30(月) 17:55:07.40ID:tHR3tKyN >>624
代替案(だいたい-あん)と言いなさい
代替案(だいたい-あん)と言いなさい
627デフォルトの名無しさん
2019/09/30(月) 18:25:02.21ID:ypiuCBLp >>626
あー。すっかり忘れてた。。。
あー。すっかり忘れてた。。。
628デフォルトの名無しさん
2019/09/30(月) 20:18:42.58ID:H9c5jpU6 >>620
なるほど
コレだな
黒マスルール - Wikipedia
https://ja.wikipedia.org/wiki/%E9%BB%92%E3%83%9E%E3%82%B9%E3%83%AB%E3%83%BC%E3%83%AB
http://ja-kouka.shinobi.or.jp/wp/wp-content/uploads/2018/07/1b6137e740902d821bd7f9678b59d7d2.jpg
出来上がった白黒の升目に上手いこと単語を置くとクロスワードパズルになる
「縦または横向きに5マス連続に並ばない」は「縦または横向きに4マスまで連続に並んでもいい」だ
そこにさらに追加ルールを仕込むとクロスワードパズルの枠が出来上がる
なるほど
コレだな
黒マスルール - Wikipedia
https://ja.wikipedia.org/wiki/%E9%BB%92%E3%83%9E%E3%82%B9%E3%83%AB%E3%83%BC%E3%83%AB
http://ja-kouka.shinobi.or.jp/wp/wp-content/uploads/2018/07/1b6137e740902d821bd7f9678b59d7d2.jpg
出来上がった白黒の升目に上手いこと単語を置くとクロスワードパズルになる
「縦または横向きに5マス連続に並ばない」は「縦または横向きに4マスまで連続に並んでもいい」だ
そこにさらに追加ルールを仕込むとクロスワードパズルの枠が出来上がる
629デフォルトの名無しさん
2019/10/01(火) 07:35:49.09ID:NlppalS8 お題
言語限定(コマンドプロンプト・パワーシェル・bash/csh等のUNIXシェル)
10000までの素数を列挙して出力
当然だが、スクリプト言語処理系やコンパイラに丸投げさせるのは禁止
というか、技量の程度が疑わてしまうのでお勧めしない
言語限定(コマンドプロンプト・パワーシェル・bash/csh等のUNIXシェル)
10000までの素数を列挙して出力
当然だが、スクリプト言語処理系やコンパイラに丸投げさせるのは禁止
というか、技量の程度が疑わてしまうのでお勧めしない
630デフォルトの名無しさん
2019/10/01(火) 08:06:53.05ID:7l0S2vrN 「○○は禁止」系のお題はろくなのがないから禁止した方がいい
631デフォルトの名無しさん
2019/10/01(火) 08:35:57.10ID:NlppalS8 プログラミング言語なんて、禁止の塊で出来たものなんで
「禁止の所産」って奴な
「禁止の所産」って奴な
632デフォルトの名無しさん
2019/10/01(火) 08:56:55.24ID:H2UNgdyX >>629
シェルスクリプトスレ池
シェルスクリプトスレ池
633デフォルトの名無しさん
2019/10/01(火) 09:02:28.05ID:zsyRP5Ba >>629
C で書いておけば許されるかんじがする
https://pastebin.com/pHNKfcun
実行
https://i.imgur.com/f62qe9L.jpg
最大の素数の幅を見てからきちんと整列される
~/bin/is_prime.exe 50900 60000
50909 50923 50929 50951 50957 50969 50971 50989 50993 51001
51031 51043 51047 51059 51061 51071 51109 51131 51133 51137
C で書いておけば許されるかんじがする
https://pastebin.com/pHNKfcun
実行
https://i.imgur.com/f62qe9L.jpg
最大の素数の幅を見てからきちんと整列される
~/bin/is_prime.exe 50900 60000
50909 50923 50929 50951 50957 50969 50971 50989 50993 51001
51031 51043 51047 51059 51061 51071 51109 51131 51133 51137
634デフォルトの名無しさん
2019/10/01(火) 09:20:22.36ID:j8m55EYr635デフォルトの名無しさん
2019/10/01(火) 09:21:08.21ID:R4cuDBX/ 遅くまともな言語ではないやつで、どうにかして動くのを作れというお題なんだろ
まともな言語使用してしまえばお題からずれてるかと
まともな言語使用してしまえばお題からずれてるかと
636デフォルトの名無しさん
2019/10/01(火) 09:53:39.77ID:PlApYvsP 配列使えるシェルもあるからそういうの使えば楽かも
shでもsetすりゃ配列だが
まあでも遅そうで実用性なさげ
shでもsetすりゃ配列だが
まあでも遅そうで実用性なさげ
637デフォルトの名無しさん
2019/10/01(火) 12:56:02.79ID:ygg8X6aa639デフォルトの名無しさん
2019/10/01(火) 14:02:08.82ID:ygg8X6aa あ、10000までの制限がないww
limit=100までにしてるから10000以降に出た数値は信頼性ないwww
修正したものを実行して確認中…10000で止まったらUPる…遅い(´・ω・`)
limit=100までにしてるから10000以降に出た数値は信頼性ないwww
修正したものを実行して確認中…10000で止まったらUPる…遅い(´・ω・`)
640デフォルトの名無しさん
2019/10/01(火) 14:07:52.43ID:ygg8X6aa641デフォルトの名無しさん
2019/10/01(火) 15:07:38.24ID:ygg8X6aa まあまだ 49(7*7) 289(17*17) 961(31*31) 2209(47*47) 3721(61*61) 6241(79*79)を出力するバグがあったわけだがw
642デフォルトの名無しさん
2019/10/01(火) 15:44:01.75ID:ygg8X6aa643デフォルトの名無しさん
2019/10/01(火) 16:30:10.47ID:7XyHUR/V シェルスクリプトでチョコチョコと何かやる分には良いが、プログラムを書くというのとは違うだろ。
プログラムはそれなりのものた^_^書いた方が効率的。
どっちからでも起動できるんだから餅は餅屋。
プログラムはそれなりのものた^_^書いた方が効率的。
どっちからでも起動できるんだから餅は餅屋。
644デフォルトの名無しさん
2019/10/01(火) 16:32:34.41ID:9fvqkmcJ ^_^;
645デフォルトの名無しさん
2019/10/01(火) 17:17:18.11ID:PlApYvsP646デフォルトの名無しさん
2019/10/01(火) 21:04:23.70ID:rsBZCnlu >>629
遅くても構わなければ、PowerShellではとても簡潔に書ける。
$p = 2..10000
while ($p) {
$p[0]
$p = @($p |? {$_ % $p[0]})
}
遅くても構わなければ、PowerShellではとても簡潔に書ける。
$p = 2..10000
while ($p) {
$p[0]
$p = @($p |? {$_ % $p[0]})
}
647デフォルトの名無しさん
2019/10/01(火) 21:59:35.52ID:Ueonb/Q5 誰が遅くても構わないと言った
648デフォルトの名無しさん
2019/10/01(火) 22:03:29.87ID:x7eW/FrR お題: ハッシュマップを実装せよ
649デフォルトの名無しさん
2019/10/01(火) 22:05:13.75ID:ygg8X6aa 俺が書いたコマンドプロンプトのよりは早いぞw
650デフォルトの名無しさん
2019/10/01(火) 22:21:18.49ID:H9NeHROf651デフォルトの名無しさん
2019/10/02(水) 07:55:46.84ID:YpMEiTCH # Java
HashMap<String, Integer> shop = new HashMap<String, Integer>();
shop.put("apple", 100);
shop.put("banana", 125);
System.out.println(shop.get("banana")); //=> 125
# Python
shop = { 'apple':100 , 'banana':125 }
print(shop['banana'])
# 125
HashMap<String, Integer> shop = new HashMap<String, Integer>();
shop.put("apple", 100);
shop.put("banana", 125);
System.out.println(shop.get("banana")); //=> 125
# Python
shop = { 'apple':100 , 'banana':125 }
print(shop['banana'])
# 125
652デフォルトの名無しさん
2019/10/02(水) 12:25:17.61ID:56vpBHGI それは実装ではない。
653デフォルトの名無しさん
2019/10/02(水) 13:20:24.28ID:+RotAwEg >>648
このスレの住民のレベルに合っていてかつプログラマにとって必要不可欠な知識なので良いお題
このスレの住民のレベルに合っていてかつプログラマにとって必要不可欠な知識なので良いお題
654デフォルトの名無しさん
2019/10/02(水) 13:31:58.92ID:vkK/4cs1 実装って何を言ってるのかな? コンパイラを作れってこと? それとも基本関数を使ってそれらしいハッシュマップを作れという事?
実装されている言語にさらに実装しろって意味不明。
実装されている言語にさらに実装しろって意味不明。
655デフォルトの名無しさん
2019/10/02(水) 14:40:31.57ID:+RotAwEg ハッシュマップのアルゴリズム部分を自分で書けってことだろ
アスペかよ
アスペかよ
656デフォルトの名無しさん
2019/10/02(水) 14:58:20.33ID:h9bkbZIX 俺健常者だけど言ってる事正直よくわからんのだが
657デフォルトの名無しさん
2019/10/02(水) 15:31:03.84ID:vkK/4cs1 言わんとすることは何となくわかるんだが、多分ジェネリックが有る言語なら比較的考えやすいがジェネリックがない言語ではどう解釈するのかな。
658蟻人間 ◆T6xkBnTXz7B0
2019/10/02(水) 16:28:04.58ID:Q9AIQiw1 お題:文字列操作のUndo/Redoを実装せよ。
文字列Sに対し
(a) 文字位置indexからcount文字を別の文字列strで置き換える(replace)、
(b) 文字位置indexからcount文字を削除する(erase)、
(c) 文字位置indexに別の文字列strを挿入する(insert)
という操作が連続的に可能であるとき、これらの操作に対するUndo/Redo(元に戻す/やり直す)を実装せよ。
ただし操作対象の文字列Sが長いときにメモリーを無駄にする実装にしてはいけない。
解答例:
Undo/Redo framework for C++11
https://github.com/katahiromz/UndoSystem
文字列Sに対し
(a) 文字位置indexからcount文字を別の文字列strで置き換える(replace)、
(b) 文字位置indexからcount文字を削除する(erase)、
(c) 文字位置indexに別の文字列strを挿入する(insert)
という操作が連続的に可能であるとき、これらの操作に対するUndo/Redo(元に戻す/やり直す)を実装せよ。
ただし操作対象の文字列Sが長いときにメモリーを無駄にする実装にしてはいけない。
解答例:
Undo/Redo framework for C++11
https://github.com/katahiromz/UndoSystem
659デフォルトの名無しさん
2019/10/02(水) 19:48:30.85ID:By3xLmz3 ここの回答に使われる言語でハッシュマップ自分で実装せなあかん言語なんて少ないと思うが?
660デフォルトの名無しさん
2019/10/02(水) 20:14:50.09ID:uTylPaUx ジェネリックなハッシュ関数の書き方が解らない。Orz
661デフォルトの名無しさん
2019/10/02(水) 20:29:20.39ID:OIQKJ8Sl シリアライズ、文字列化できてればCRC32でも一応ハッシュとして使える
662デフォルトの名無しさん
2019/10/02(水) 20:36:10.78ID:uTylPaUx >>661
小規模な問題解くのにミドルウェアいるんすな。辛い。
小規模な問題解くのにミドルウェアいるんすな。辛い。
663デフォルトの名無しさん
2019/10/02(水) 20:49:55.37ID:OIQKJ8Sl そんなに汎用的、一般的なのを作る必要もないとおもうので
入力は文字列限定で動くやつ作ればクリアでは?
入力は文字列限定で動くやつ作ればクリアでは?
664デフォルトの名無しさん
2019/10/02(水) 21:00:41.50ID:uTylPaUx >>663
解った文字列やってみるわ。
解った文字列やってみるわ。
665デフォルトの名無しさん
2019/10/02(水) 21:46:18.99ID:uTylPaUx >>648
http://coliru.stacked-crooked.com/a/7a42d9f1346c0049
C++。コンストラクタ起動式って17からやったっけ?
とりあえず作ってみたが・・・。
今、調子悪くて困ってる。
http://coliru.stacked-crooked.com/a/7a42d9f1346c0049
C++。コンストラクタ起動式って17からやったっけ?
とりあえず作ってみたが・・・。
今、調子悪くて困ってる。
666デフォルトの名無しさん
2019/10/02(水) 21:48:13.96ID:uTylPaUx ハッシュ関数は適当。昔2chで見たのパクった。
HMのサイズ7にしておけばよかった。素数だからな。
HMのサイズ7にしておけばよかった。素数だからな。
667デフォルトの名無しさん
2019/10/02(水) 21:59:13.49ID:bMxkjAXQ お題: 簡易的なXMLをパースして構造を出力せよ
in < <div><p><a></a></p></div><span><p></p></span>
out >
div
__p
____a
span
__p
in < <div><p><a></a></p></div><span><p></p></span>
out >
div
__p
____a
span
__p
668デフォルトの名無しさん
2019/10/02(水) 22:48:58.72ID:2Yo9PRwa >>661
それかsumでいいやん、conflictしたらリスト管理で一丁上がり
それかsumでいいやん、conflictしたらリスト管理で一丁上がり
669デフォルトの名無しさん
2019/10/02(水) 22:50:04.70ID:XyzGBTdX670デフォルトの名無しさん
2019/10/03(木) 08:18:12.13ID:z1c5xmGq671デフォルトの名無しさん
2019/10/04(金) 01:29:13.30ID:rw3arA+q いいじゃねーかそんなこまけーことどうでも
ケツの穴のちいせぇやろうだな。
何ならおじさんが広げてやろうかw
ケツの穴のちいせぇやろうだな。
何ならおじさんが広げてやろうかw
672デフォルトの名無しさん
2019/10/04(金) 01:59:12.37ID:0BDgocBX アッー!
673デフォルトの名無しさん
2019/10/04(金) 04:07:06.69ID:/Ff7i02R674デフォルトの名無しさん
2019/10/04(金) 14:06:50.47ID:IeSaX57c >>629
の出題意図を読み取れば、
記憶域を余り自由に使えない環境で
如何に工夫して目的が達成できるか
ということではないかと
その意味では、Power-shellは少し
強力杉だから除外すべきだったかも
知れないが(遅いから使われる
ことは少ないだろけどスクリプト言
語処理系であるとも言えなくもないし)
の出題意図を読み取れば、
記憶域を余り自由に使えない環境で
如何に工夫して目的が達成できるか
ということではないかと
その意味では、Power-shellは少し
強力杉だから除外すべきだったかも
知れないが(遅いから使われる
ことは少ないだろけどスクリプト言
語処理系であるとも言えなくもないし)
675デフォルトの名無しさん
2019/10/04(金) 14:58:22.06ID:BEYT4ZYw シェルスクリプトって元々プログラミング言語じゃないからな。 あくまでも補助的なもの。
それでプログラミングすると言うのは本末転倒。 間違った方向性でしかない。
貧弱な環境でも使えるものと言うなら、BASIC や、Python の組込型がコンパクト。 PIC や子供のおもちゃにすら入ってる。 百円のチップにすら入ってるからな。
コンパイラでも良いのならCが最もシンプル。
それでプログラミングすると言うのは本末転倒。 間違った方向性でしかない。
貧弱な環境でも使えるものと言うなら、BASIC や、Python の組込型がコンパクト。 PIC や子供のおもちゃにすら入ってる。 百円のチップにすら入ってるからな。
コンパイラでも良いのならCが最もシンプル。
676デフォルトの名無しさん
2019/10/04(金) 17:29:00.38ID:uYF9K7e8 またプログラム言語のオレオレ定義かよw
677デフォルトの名無しさん
2019/10/04(金) 17:37:04.67ID:ordI0mDW それ以上に謎の空白が気になる
678675
2019/10/04(金) 18:12:04.35ID:aN85/uHn わりいわりい、iOS13になって、日本語の途中の空白は全て全角になったから、なんか間抜けな感じになったな。
良いか悪いかわからんが慣れてくれ。
良いか悪いかわからんが慣れてくれ。
679デフォルトの名無しさん
2019/10/04(金) 18:43:32.54ID:hcjI0QEW 。の後にスペースをひとつ入れているようだ
680デフォルトの名無しさん
2019/10/04(金) 18:44:20.57ID:hcjI0QEW スペース入れなきゃいいのでは?
681デフォルトの名無しさん
2019/10/04(金) 19:36:54.12ID:bnA3YiVJ 空白なのは頭ん中だけにしとけwww
682デフォルトの名無しさん
2019/10/05(土) 00:51:48.39ID:pioYL/z5 空っぽのほうが夢詰め込めるぞ
683デフォルトの名無しさん
2019/10/05(土) 01:36:41.50ID:iITy9V8b 空っぽかと思ったら、実は分厚い頭蓋骨が詰まった中心に
ポツンとノミのような脳みそがある、石頭だったでごじゃる
ポツンとノミのような脳みそがある、石頭だったでごじゃる
684637
2019/10/05(土) 08:57:02.16ID:4K3q4mZL685デフォルトの名無しさん
2019/10/05(土) 15:19:46.96ID:6iFRuM3K >>629 bash 4.3.42(3)
n=10000
eval "a=('' '' {2..$n})"
for i in ${a[@]}; do
if [ ${a[$i]} ]; then
echo $i
for ((j=2*$i; j<=$n; j+=$i)); do
unset a[$j]
done
fi
done
実行結果
$ bash 15_629_prime.sh
2
3
5
7
…
9941
9949
9967
9973
n=10000
eval "a=('' '' {2..$n})"
for i in ${a[@]}; do
if [ ${a[$i]} ]; then
echo $i
for ((j=2*$i; j<=$n; j+=$i)); do
unset a[$j]
done
fi
done
実行結果
$ bash 15_629_prime.sh
2
3
5
7
…
9941
9949
9967
9973
686デフォルトの名無しさん
2019/10/05(土) 15:21:16.04ID:6iFRuM3K687デフォルトの名無しさん
2019/10/05(土) 15:31:29.76ID:6iFRuM3K >>686 いや、for ((j=$i*$i; j<=$n; j+=$i)); do だよ間違えた、25%早くなる
n=10000
eval "a=('' '' {2..$n})"
for i in ${a[@]}; do
if [[ ${a[$i]} ]]; then
echo $i
for ((j=$i*$i; j<=$n; j+=$i)); do
unset a[$j]
done
fi
done
n=10000
eval "a=('' '' {2..$n})"
for i in ${a[@]}; do
if [[ ${a[$i]} ]]; then
echo $i
for ((j=$i*$i; j<=$n; j+=$i)); do
unset a[$j]
done
fi
done
688デフォルトの名無しさん
2019/10/05(土) 16:09:49.40ID:6iFRuM3K689デフォルトの名無しさん
2019/10/05(土) 17:13:25.01ID:6iFRuM3K >>687
eval "a=('' '' {2..$n})"
for i in ${a[@]}; do
if [[ ${a[$i]} ]]; then
この書き方、a[]の最初の0,1番目の要素に空文字を設定しておいて
それを配列のインデックスとして使い、あまりいい書き方じゃないと気がついた
動いているんで、あせって直さないでおくけど ゴメンね〜
eval "a=('' '' {2..$n})"
for i in ${a[@]}; do
if [[ ${a[$i]} ]]; then
この書き方、a[]の最初の0,1番目の要素に空文字を設定しておいて
それを配列のインデックスとして使い、あまりいい書き方じゃないと気がついた
動いているんで、あせって直さないでおくけど ゴメンね〜
690デフォルトの名無しさん
2019/10/05(土) 20:48:42.33ID:oVPf95FK お題:
https://regexcrossword.com/playerpuzzles/59e565c95008d
のようなHEXマスの正規表現クロスワードパズルのソルバーを実装せよ。
n=1でいいので処理時間も報告せよ。
https://regexcrossword.com/playerpuzzles/59e565c95008d
のようなHEXマスの正規表現クロスワードパズルのソルバーを実装せよ。
n=1でいいので処理時間も報告せよ。
691デフォルトの名無しさん
2019/10/05(土) 21:56:27.55ID:Lt/DoxvR >>690
辞書データぷりーず
辞書データぷりーず
692デフォルトの名無しさん
2019/10/05(土) 22:00:12.06ID:4K3q4mZL このソルバーに辞書データっているか?
693デフォルトの名無しさん
2019/10/05(土) 22:27:44.93ID:NXndjuW4694デフォルトの名無しさん
2019/10/05(土) 23:11:05.60ID:6iFRuM3K >>667 Perl5
$in = '<div><p><a></a></p></div><span><p></p></span>';
use XML::Simple;
$xml = new XML::Simple->XMLin('<document>'.$in.'</document>');
use Data::Dumper;
$Data::Dumper::Terse = 1;
print Dumper $xml;
実行結果
~ $ perl 15_667_Simple.pl
{
'div' => {
'p' => {
'a' => {}
}
},
'span' => {
'p' => {}
}
}
$in = '<div><p><a></a></p></div><span><p></p></span>';
use XML::Simple;
$xml = new XML::Simple->XMLin('<document>'.$in.'</document>');
use Data::Dumper;
$Data::Dumper::Terse = 1;
print Dumper $xml;
実行結果
~ $ perl 15_667_Simple.pl
{
'div' => {
'p' => {
'a' => {}
}
},
'span' => {
'p' => {}
}
}
695デフォルトの名無しさん
2019/10/06(日) 00:03:34.99ID:tnh9RMO0 とりあえず>>690を手動で解くのに2時間かかったw
お題は思いついたらやる
お題は思いついたらやる
696デフォルトの名無しさん
2019/10/06(日) 05:37:10.28ID:oevqPO9x お題: L形図形を表示する
[入力]
1
[出力]
a
bc
[入力]
2
[出力]
ba
ca
abcc
bcab
[入力]
3
[出力]
bacb
cbaa
acba
bcca
bcabcccb
cabcabca
abccaabc
bcabbcab
[入力]
1
[出力]
a
bc
[入力]
2
[出力]
ba
ca
abcc
bcab
[入力]
3
[出力]
bacb
cbaa
acba
bcca
bcabcccb
cabcabca
abccaabc
bcabbcab
697デフォルトの名無しさん
2019/10/06(日) 05:55:18.89ID:vrVeYjyl698デフォルトの名無しさん
2019/10/06(日) 05:58:05.67ID:lJB/egMg カオス
699675
2019/10/06(日) 09:02:51.40ID:O+kT1S2P 最後は4だろ
700デフォルトの名無しさん
2019/10/06(日) 09:24:22.51ID:+7MXB6fE >>697
おそらく1のパターンのL字を4つで向きを変えてくっつけて大きなL字にしたものが2のパターン。2を4つ使って同じことをやって3を作ってるということだと思う。愚直に再帰的にやれば簡単そう。
おそらく1のパターンのL字を4つで向きを変えてくっつけて大きなL字にしたものが2のパターン。2を4つ使って同じことをやって3を作ってるということだと思う。愚直に再帰的にやれば簡単そう。
701デフォルトの名無しさん
2019/10/06(日) 10:20:09.68ID:tnh9RMO0 >>696
入力3の出力、一か所間違えとるよな?w
入力3の出力、一か所間違えとるよな?w
702デフォルトの名無しさん
2019/10/06(日) 10:43:36.50ID:tnh9RMO0703デフォルトの名無しさん
2019/10/06(日) 17:34:25.93ID:kRqXlweR お題: プログラム実行後にプログラム自身を削除するプログラムを作れ
実行内容は以下のメッセージを出力する
「このプログラムが起動するのは一度きりである。実行ののち、消去される。」
実行内容は以下のメッセージを出力する
「このプログラムが起動するのは一度きりである。実行ののち、消去される。」
704デフォルトの名無しさん
2019/10/06(日) 17:53:36.15ID:VH97tuta705675
2019/10/06(日) 18:05:59.73ID:m+CayYCA706デフォルトの名無しさん
2019/10/06(日) 20:06:09.43ID:+aq+gJyQ >>704
大抵の環境でコマンド通らないんじゃないかそれ
大抵の環境でコマンド通らないんじゃないかそれ
707デフォルトの名無しさん
2019/10/06(日) 20:12:57.33ID:XBuBF2Rc #!/bin/sh
echo このプログラムが起動するのは一度きりである。実行ののち、消去される。
\rm -f $0
echo このプログラムが起動するのは一度きりである。実行ののち、消去される。
\rm -f $0
708デフォルトの名無しさん
2019/10/06(日) 20:16:32.32ID:lJB/egMg lol $0 じゃなくて / にしてるのかwww
709デフォルトの名無しさん
2019/10/06(日) 20:19:37.81ID:bPt7YQEe >>707みて、できなくはないが、やりたくない気分になった。
http://www.t-net.ne.jp/~cyfis/c/stdlib/system.html
上記を使えば、PGからコマンドラインに干渉できる。が!ねぇ・・・。
場所もargc[0]に書いてあるんだけどねぇ・・・。
WA.
http://www.t-net.ne.jp/~cyfis/c/stdlib/system.html
上記を使えば、PGからコマンドラインに干渉できる。が!ねぇ・・・。
場所もargc[0]に書いてあるんだけどねぇ・・・。
WA.
710デフォルトの名無しさん
2019/10/06(日) 21:19:08.41ID:QZjIPE+j シェルスクリプト総合 その31
https://mevius.5ch.net/test/read.cgi/tech/1565446670/
https://mevius.5ch.net/test/read.cgi/tech/1565446670/
711デフォルトの名無しさん
2019/10/07(月) 13:22:48.77ID:lSqRbxbA >>703
Linux等のUNIX系OS
at now +1 min
などとやって at job が一分後に動くようにして次の1行を入力してから Ctrl+D で終了させる。
echo 'このプログラムが起動するのは一度きりである。実行ののち、消去される。'
その後1分待つと上記文言の出力後 at job は削除される。
ただし通常の出力先である標準出力はないことになっているのでatによって拾われてメールでエラーメッセージと共に送られてくる。
それを見たい場合はmailコマンドで送られてきたメールの内容を見る等する。
Linux等のUNIX系OS
at now +1 min
などとやって at job が一分後に動くようにして次の1行を入力してから Ctrl+D で終了させる。
echo 'このプログラムが起動するのは一度きりである。実行ののち、消去される。'
その後1分待つと上記文言の出力後 at job は削除される。
ただし通常の出力先である標準出力はないことになっているのでatによって拾われてメールでエラーメッセージと共に送られてくる。
それを見たい場合はmailコマンドで送られてきたメールの内容を見る等する。
712蟻人間 ◆T6xkBnTXz7B0
2019/10/07(月) 18:38:53.78ID:tyyduGK2 >>703 C++/Win32
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char **argv)
{
printf("このプログラムが起動するのは一度きりである。実行ののち、消去される。\n");
FILE *fp = fopen("delete-me.bat", "w");
fprintf(fp, "@echo off\n");
fprintf(fp, ":retry\n");
fprintf(fp, "del \"%s\"\n", argv[0]);
fprintf(fp, "if exist \"%s\" goto retry\n", argv[0]);
fprintf(fp, "del delete-me.bat\n");
fclose(fp);
ShellExecuteA(NULL, NULL, "cmd", "/c delete-me.bat", NULL, SW_HIDE);
return 0;
}
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char **argv)
{
printf("このプログラムが起動するのは一度きりである。実行ののち、消去される。\n");
FILE *fp = fopen("delete-me.bat", "w");
fprintf(fp, "@echo off\n");
fprintf(fp, ":retry\n");
fprintf(fp, "del \"%s\"\n", argv[0]);
fprintf(fp, "if exist \"%s\" goto retry\n", argv[0]);
fprintf(fp, "del delete-me.bat\n");
fclose(fp);
ShellExecuteA(NULL, NULL, "cmd", "/c delete-me.bat", NULL, SW_HIDE);
return 0;
}
713デフォルトの名無しさん
2019/10/07(月) 22:21:05.16ID:aU+ghkHH >>703 Perl5
print "このプログラムが起動するのは一度きりである。実行ののち、消去される。\n";
unlink $0;
実行結果
~ $ perl 15_703.pl
このプログラムが起動するのは一度きりである。実行ののち、消去される。
~ $ ls -o 15_703.pl
/usr/bin/ls: cannot access 15_703.pl: No such file or directory
嫌なプログラミンッグだな、一歩書き間違がや大参事。
こういうお題はご遠慮願いたいものだ…
print "このプログラムが起動するのは一度きりである。実行ののち、消去される。\n";
unlink $0;
実行結果
~ $ perl 15_703.pl
このプログラムが起動するのは一度きりである。実行ののち、消去される。
~ $ ls -o 15_703.pl
/usr/bin/ls: cannot access 15_703.pl: No such file or directory
嫌なプログラミンッグだな、一歩書き間違がや大参事。
こういうお題はご遠慮願いたいものだ…
714デフォルトの名無しさん
2019/10/07(月) 22:32:50.62ID:aU+ghkHH715デフォルトの名無しさん
2019/10/07(月) 22:35:14.10ID:aU+ghkHH >>714 実行結果貼りそこなったorz
$ bash 15_703.sh
このプログラムが起動するのは一度きりである。実行ののち、消去される。
$ ls -o 15_703.sh
-rw-r--r-- 1 ******** 98 10月 7 22:29 15_703.sh
… 数秒後
$ ls -o 15_703.sh
ls: 15_703.sh にアクセスできません: No such file or directory
$ bash 15_703.sh
このプログラムが起動するのは一度きりである。実行ののち、消去される。
$ ls -o 15_703.sh
-rw-r--r-- 1 ******** 98 10月 7 22:29 15_703.sh
… 数秒後
$ ls -o 15_703.sh
ls: 15_703.sh にアクセスできません: No such file or directory
716デフォルトの名無しさん
2019/10/07(月) 23:18:10.62ID:Hq5Oz5C1 MSX BASIC
10 print"オハヨウフェルペスクン,コンカイノキミノニンムダガイカリャクナオコノテープハジドウテキニショウメツスル"
20 new
10 print"オハヨウフェルペスクン,コンカイノキミノニンムダガイカリャクナオコノテープハジドウテキニショウメツスル"
20 new
717デフォルトの名無しさん
2019/10/07(月) 23:48:42.06ID:ti3U/Qjr718蟻人間 ◆T6xkBnTXz7B0
2019/10/07(月) 23:54:31.61ID:9cpaLYwd 実行時にexeにロックがかかるから、実行終了を待つsystem関数では消せないんだ、これが。
719蟻人間 ◆T6xkBnTXz7B0
2019/10/08(火) 00:32:11.48ID:LPLIE15X 拡張子.batはコマンドプロンプトのバッチファイルを表す。
720デフォルトの名無しさん
2019/10/08(火) 01:09:42.27ID:LQA6uDl1721デフォルトの名無しさん
2019/10/08(火) 01:10:33.04ID:LQA6uDl1722デフォルトの名無しさん
2019/10/08(火) 01:14:29.28ID:LQA6uDl1 あ、数秒後にタスクを実行したかったが、分単位にしかならないようだ。
723デフォルトの名無しさん
2019/10/08(火) 01:31:36.46ID:YlPtBjRn どM乙。
724デフォルトの名無しさん
2019/10/08(火) 02:43:45.63ID:LQA6uDl1 https://ideone.com/s1OxbV
C++&Windows. 結局バッチ作ってバッチを削除するようにした。
C++&Windows. 結局バッチ作ってバッチを削除するようにした。
725デフォルトの名無しさん
2019/10/08(火) 02:45:57.47ID:LQA6uDl1 C++で書いている意味があまりないなぁ。
頭がこんがらがってくるわ。
頭がこんがらがってくるわ。
726デフォルトの名無しさん
2019/10/08(火) 03:07:50.37ID:LQA6uDl1 タスクスケジューラには一個のタスクしか持たせることができません。
タスクスケジューラの健康のために削除タスクと削除タスクをkillするタスクを入れたという欲が出ました。
さて、どうすればよかったのでしょうか・・・。
タスクスケジューラの健康のために削除タスクと削除タスクをkillするタスクを入れたという欲が出ました。
さて、どうすればよかったのでしょうか・・・。
727デフォルトの名無しさん
2019/10/08(火) 03:25:53.77ID:LQA6uDl1 https://ideone.com/8DBn1u
チョットシンプルになった。
けど、ただスケジュールしてバッチファイル作るだけになっちゃった・・・。Orz
ううううううぼぉぉぉおあぁぁぁあああ。。。
チョットシンプルになった。
けど、ただスケジュールしてバッチファイル作るだけになっちゃった・・・。Orz
ううううううぼぉぉぉおあぁぁぁあああ。。。
728デフォルトの名無しさん
2019/10/08(火) 18:18:17.33ID:9WsdIwSr おしい
729デフォルトの名無しさん
2019/10/08(火) 22:43:05.75ID:8UaWwWzr 「インターネットには戦力外通告とかが無いから頭の悪い人がいつまでも打席に立って三振し続ける」
730デフォルトの名無しさん
2019/10/09(水) 01:57:50.31ID:vwSn6CxZ お題: TCPデータグラムが流れてくるのでFINフラグが立っていたら「切断します」と出力せよ
731デフォルトの名無しさん
2019/10/10(木) 00:51:51.46ID:P0sO6qGI >>729
IT分野の実社会では、単価にそれほど差がないのをいいことに
パーフォマンダウンによる差額で利ざやを稼ごうという
商売が横行して、結果としてIT分野が廃れている
だから。こまけーこたー いいんだよ
IT分野の実社会では、単価にそれほど差がないのをいいことに
パーフォマンダウンによる差額で利ざやを稼ごうという
商売が横行して、結果としてIT分野が廃れている
だから。こまけーこたー いいんだよ
732デフォルトの名無しさん
2019/10/10(木) 19:10:08.63ID:Tobvh7XK733デフォルトの名無しさん
2019/10/10(木) 19:12:56.39ID:AtKsFWU7 >>690 解けた人いない?
734デフォルトの名無しさん
2019/10/10(木) 19:14:39.08ID:0pYFH17C735デフォルトの名無しさん
2019/10/10(木) 20:46:59.80ID:78OW/ryc いやお題はパズルを解けじゃなくてパズルのソルバーの実装だからwww
736蟻人間 ◆T6xkBnTXz7B0
2019/10/10(木) 21:25:17.60ID:VnnXeZwz 古典的な人工知能の探索アルゴリズムを研究すれば、この程度のソルバーは作れる。
737デフォルトの名無しさん
2019/10/10(木) 21:48:13.15ID:PZRS9XbT つまり研究しないと作れないってことか。
738デフォルトの名無しさん
2019/10/10(木) 23:09:22.63ID:gSAdFsTs >>735
だから総当たり以外思い浮かばなかったって言ってるだろ
だから総当たり以外思い浮かばなかったって言ってるだろ
739デフォルトの名無しさん
2019/10/11(金) 00:08:49.38ID:1+VMU1fD740デフォルトの名無しさん
2019/10/11(金) 01:56:11.32ID:H4pwkZny いや総当たりでも出来たなら貼ってくれや。
別に総当たりでも恥ずかしくもなんともないと思うが…
別に総当たりでも恥ずかしくもなんともないと思うが…
741デフォルトの名無しさん
2019/10/11(金) 08:53:45.55ID:MNDgolhS 貼りたくねえ
総当たり出できたものを他人のために見せる必要性もないし
総当たり出できたものを他人のために見せる必要性もないし
742デフォルトの名無しさん
2019/10/11(金) 09:03:11.12ID:Cra8acMD できた!
みせて。
見せたくない!
うーん…
みせて。
見せたくない!
うーん…
743デフォルトの名無しさん
2019/10/11(金) 09:08:21.86ID:pcktkYLP ;フェルマーの最終定理
744デフォルトの名無しさん
2019/10/11(金) 21:55:54.61ID:zKaC3xv0 お題:0〜9999の整数について数字和を求め、数字和の頻度を集計せよ
ocaml
https://ideone.com/AjcGgp
c
https://ideone.com/38nYGS
octave
https://ideone.com/g7FrVu
ruby
https://ideone.com/YyFXWh
ocaml
https://ideone.com/AjcGgp
c
https://ideone.com/38nYGS
octave
https://ideone.com/g7FrVu
ruby
https://ideone.com/YyFXWh
745デフォルトの名無しさん
2019/10/11(金) 22:38:20.98ID:hqLUiXPo746デフォルトの名無しさん
2019/10/11(金) 22:44:43.53ID:poa9EnRO すんごく二項定理っぽい数字の並び方をしてる
747デフォルトの名無しさん
2019/10/11(金) 23:16:02.90ID:GtQsvrI7 >>744 Java
https://ideone.com/U99ZM3
プログラミングのお題スレ Part9 [無断転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1480579110/134-136
昔書いたこれ(上の136)を流用
https://ideone.com/U99ZM3
プログラミングのお題スレ Part9 [無断転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1480579110/134-136
昔書いたこれ(上の136)を流用
748デフォルトの名無しさん
2019/10/11(金) 23:53:28.54ID:jSXBX1w1 >>744
これって0~9999じゃなくて任意の2つの数字入力させてとかだと愚直に計算するしかない?
これって0~9999じゃなくて任意の2つの数字入力させてとかだと愚直に計算するしかない?
749デフォルトの名無しさん
2019/10/12(土) 00:32:58.46ID:Cxdg6QkN >>748
うまくやれば出来そうだがまだ思いつかん
うまくやれば出来そうだがまだ思いつかん
750デフォルトの名無しさん
2019/10/12(土) 11:04:47.64ID:ewC1g8Dg >>744 Pharo/Squeak Smalltalk
| bag |
bag := Bag new.
(0 to: 9) asDigitsToPower: 4 do: [:digits | bag add: digits sum].
^ bag sortedElements
"=> {0->1 . 1->4 . 2->10 . 3->20 . 4->35 . 5->56 .
6->84 . 7->120 . 8->165 . 9->220 . 10->282 .
11->348 . 12->415 . 13->480 . 14->540 . 15->592 .
16->633 . 17->660 . 18->670 . 19->660 . 20->633 .
21->592 . 22->540 . 23->480 . 24->415 . 25->348 .
26->282 . 27->220 . 28->165 . 29->120 . 30->84 .
31->56 . 32->35 . 33->20 . 34->10 . 35->4 . 36->1} "
| bag |
bag := Bag new.
(0 to: 9) asDigitsToPower: 4 do: [:digits | bag add: digits sum].
^ bag sortedElements
"=> {0->1 . 1->4 . 2->10 . 3->20 . 4->35 . 5->56 .
6->84 . 7->120 . 8->165 . 9->220 . 10->282 .
11->348 . 12->415 . 13->480 . 14->540 . 15->592 .
16->633 . 17->660 . 18->670 . 19->660 . 20->633 .
21->592 . 22->540 . 23->480 . 24->415 . 25->348 .
26->282 . 27->220 . 28->165 . 29->120 . 30->84 .
31->56 . 32->35 . 33->20 . 34->10 . 35->4 . 36->1} "
751デフォルトの名無しさん
2019/10/12(土) 11:07:06.97ID:ewC1g8Dg いかん。すまん。出力が安価になってしまった。
752デフォルトの名無しさん
2019/10/12(土) 11:31:04.69ID:zNYc1jm8 lol
753デフォルトの名無しさん
2019/10/12(土) 11:52:28.41ID:msiQ/n9S >>750
@Mathematica
Range[0, 9999] //
Map[IntegerDigits, #] & //
Map[Total, #] & //
Tally
{{0, 1}, {1, 4}, {2, 10}, {3, 20}, {4, 35}, {5, 56}, {6, 84},
{7, 120}, {8, 165}, {9, 220}, {10, 282}, {11, 348}, {12, 415},
{13, 480}, {14, 540}, {15, 592}, {16, 633}, {17, 660}, {18, 670},
{19, 660}, {20, 633}, {21, 592}, {22, 540}, {23, 480}, {24, 415},
{25, 348}, {26, 282}, {27, 220}, {28, 165}, {29, 120}, {30, 84},
{31, 56}, {32, 35}, {33, 20}, {34, 10}, {35, 4}, {36, 1}}
@Mathematica
Range[0, 9999] //
Map[IntegerDigits, #] & //
Map[Total, #] & //
Tally
{{0, 1}, {1, 4}, {2, 10}, {3, 20}, {4, 35}, {5, 56}, {6, 84},
{7, 120}, {8, 165}, {9, 220}, {10, 282}, {11, 348}, {12, 415},
{13, 480}, {14, 540}, {15, 592}, {16, 633}, {17, 660}, {18, 670},
{19, 660}, {20, 633}, {21, 592}, {22, 540}, {23, 480}, {24, 415},
{25, 348}, {26, 282}, {27, 220}, {28, 165}, {29, 120}, {30, 84},
{31, 56}, {32, 35}, {33, 20}, {34, 10}, {35, 4}, {36, 1}}
754デフォルトの名無しさん
2019/10/12(土) 13:09:50.35ID:Nq/Z/R6A >>744 perl
use List::Util qw(sum);
$h{sum(split"")}++ for(0..9999);
map{print"$_ $h{$_}\n"}sort{$a<=>$b}keys%h;
use List::Util qw(sum);
$h{sum(split"")}++ for(0..9999);
map{print"$_ $h{$_}\n"}sort{$a<=>$b}keys%h;
755デフォルトの名無しさん
2019/10/12(土) 13:25:43.66ID:VvSWBOR5756デフォルトの名無しさん
2019/10/12(土) 17:47:36.17ID:Nq/Z/R6A 頻度の階差を取った
0~9999だと三角数
0~99999だと三角錐数
になる
0~9999だと三角数
0~99999だと三角錐数
になる
757デフォルトの名無しさん
2019/10/12(土) 18:44:18.00ID:I5ZWyiFj >>740
>>741じゃねーけど総当りもどきで解いてみた
https://ideone.com/nZqnpN
https://i.imgur.com/3esPPr0.jpg
さすがにフルに総当りするととても終わりそうにないのでちょっとズルして各マスに入る文字を正規表現に使われている"ABCDEFGHMNORXYZ"に限定した
(ソースの217行目)
Celeron 1005M 1.9GHzのしょぼいノートPCで1,386秒(23分)程度だった
>>741じゃねーけど総当りもどきで解いてみた
https://ideone.com/nZqnpN
https://i.imgur.com/3esPPr0.jpg
さすがにフルに総当りするととても終わりそうにないのでちょっとズルして各マスに入る文字を正規表現に使われている"ABCDEFGHMNORXYZ"に限定した
(ソースの217行目)
Celeron 1005M 1.9GHzのしょぼいノートPCで1,386秒(23分)程度だった
758デフォルトの名無しさん
2019/10/12(土) 19:36:00.00ID:vBnCHMzu759デフォルトの名無しさん
2019/10/12(土) 19:59:28.15ID:hTj/2FIT >>754 Perl5、計算量を減らしたアルゴリズム
sub f {
@s = @_;
for $l (1..9) {
$s[$_ + $l] += $_[$_] for 0..$#_;
} @s }
@b = f f f f 1;
print "$_,$b[$_] " for 0..$#b;
実行結果
~ $ perl 15_774_digit_sum_1.pl
0,1 1,4 2,10 3,20 4,35 5,56 6,84 7,120 8,165 9,220 10,282 11,348 12,415 13,480 14,540 15,592 16,633 17,660 18,670 19,660 20,633 21,592 22,540 23,480 24,415 25,348 26,282 27,220 28,165 29,120 30,84 31,56 32,35 33,20 34,10 35,4 36,1
もっと減らしたアルゴリズムを考えたい気もするけど、
これで一回投稿
sub f {
@s = @_;
for $l (1..9) {
$s[$_ + $l] += $_[$_] for 0..$#_;
} @s }
@b = f f f f 1;
print "$_,$b[$_] " for 0..$#b;
実行結果
~ $ perl 15_774_digit_sum_1.pl
0,1 1,4 2,10 3,20 4,35 5,56 6,84 7,120 8,165 9,220 10,282 11,348 12,415 13,480 14,540 15,592 16,633 17,660 18,670 19,660 20,633 21,592 22,540 23,480 24,415 25,348 26,282 27,220 28,165 29,120 30,84 31,56 32,35 33,20 34,10 35,4 36,1
もっと減らしたアルゴリズムを考えたい気もするけど、
これで一回投稿
760デフォルトの名無しさん
2019/10/12(土) 20:06:37.21ID:hTj/2FIT761744
2019/10/12(土) 20:24:43.33ID:1DgZSjUc 白状すると単にrubyで書きたいだけのお題だったんだけど
(Array#repeated_permutationを使いたいだけ)
みんな色々面白いこと考えるもんだね
(Array#repeated_permutationを使いたいだけ)
みんな色々面白いこと考えるもんだね
762蟻人間 ◆T6xkBnTXz7B0
2019/10/13(日) 14:56:19.23ID:w8oKE2gz お題: ストップウォッチを作れ。
最初にEnterキーを押すとスタート。
次にEnterキーを押すとストップ。
経過した時間を表示する。
最初にEnterキーを押すとスタート。
次にEnterキーを押すとストップ。
経過した時間を表示する。
763675
2019/10/13(日) 15:28:31.50ID:XFDKT5kN >>744 Python
https://ideone.com/v1nrdn
―――-
import pandas as pd
array = []
for i in range(0,10000):
array.append(sum(list(map(int,str(i)))))
srv =pd.Series(array).value_counts().sort_index()
print(srv)
https://ideone.com/v1nrdn
―――-
import pandas as pd
array = []
for i in range(0,10000):
array.append(sum(list(map(int,str(i)))))
srv =pd.Series(array).value_counts().sort_index()
print(srv)
764デフォルトの名無しさん
2019/10/13(日) 17:38:11.00ID:qg/TNtNV765デフォルトの名無しさん
2019/10/13(日) 21:07:01.46ID:w512EwKm766デフォルトの名無しさん
2019/10/14(月) 01:02:32.87ID:Ws6GlsT+767デフォルトの名無しさん
2019/10/14(月) 02:00:45.97ID:Ws6GlsT+ >>762
Kotlin
まずは仕様通りのもの。
fun main() {
val br = System.`in`.bufferedReader()
br.readLine()
val t0 = System.nanoTime()
br.readLine()
val t1 = System.nanoTime()
val t = t1 - t0
println("%d.%09d".format(t / 1000000000L, t % 1000000000))
}
しかしこれでは途中経過が出てこなくてつまらない。ということでこれ。
fun main() {
val br = System.`in`.bufferedReader()
br.readLine()
val t0 = System.nanoTime()
while (true) {
if (br.ready()) {
val c = br.read()
if (c == '\n'.toInt())
break
}
val t1 = System.nanoTime()
val t = t1 - t0
print("%d.%09d\r".format(t / 1000000000L, t % 1000000000))
}
println()
}
Kotlin
まずは仕様通りのもの。
fun main() {
val br = System.`in`.bufferedReader()
br.readLine()
val t0 = System.nanoTime()
br.readLine()
val t1 = System.nanoTime()
val t = t1 - t0
println("%d.%09d".format(t / 1000000000L, t % 1000000000))
}
しかしこれでは途中経過が出てこなくてつまらない。ということでこれ。
fun main() {
val br = System.`in`.bufferedReader()
br.readLine()
val t0 = System.nanoTime()
while (true) {
if (br.ready()) {
val c = br.read()
if (c == '\n'.toInt())
break
}
val t1 = System.nanoTime()
val t = t1 - t0
print("%d.%09d\r".format(t / 1000000000L, t % 1000000000))
}
println()
}
768デフォルトの名無しさん
2019/10/14(月) 07:53:19.70ID:kizbcx2j769デフォルトの名無しさん
2019/10/14(月) 08:39:26.54ID:6P2fe30E >>768
そのニュース関係なくね?
そのニュース関係なくね?
770デフォルトの名無しさん
2019/10/14(月) 08:53:29.04ID:z/6QW2Tk 実は素数でした
とかいう形?
とかいう形?
771デフォルトの名無しさん
2019/10/14(月) 09:34:48.23ID:6P2fe30E >>770
511 = 7 * 73 だから 2^511 - 1 は素数ではない
511 = 7 * 73 だから 2^511 - 1 は素数ではない
772デフォルトの名無しさん
2019/10/14(月) 09:38:05.24ID:6P2fe30E というか2^73-1で割り切れる
>>771-772
それは 2^511-1 は 2^7-1 でも割り切れることを主張しているのですか?
それは 2^511-1 は 2^7-1 でも割り切れることを主張しているのですか?
774デフォルトの名無しさん
2019/10/14(月) 16:21:24.99ID:CCU+9UFO >>773
それ以外にどう読めるんだよアホか
それ以外にどう読めるんだよアホか
775デフォルトの名無しさん
2019/10/14(月) 20:26:24.40ID:ead7I0ur776蟻人間 ◆T6xkBnTXz7B0
2019/10/14(月) 20:53:54.75ID:O0QR+doO プログラミングから一気に整数論へダイブ
778デフォルトの名無しさん
2019/10/14(月) 22:14:18.19ID:hXRtCJE+ 必死に5時間検索しまくったのか・・・
779675
2019/10/15(火) 01:03:22.38ID:LXkkA+L3 もう何処かのチャレンジ問題を議論するスレでも良いのでは?
780デフォルトの名無しさん
2019/10/15(火) 01:28:25.21ID:4KtvCQDg お題: お題スレの過去スレからお題をランダムに選択し出力するプログラムを作成せよ
781デフォルトの名無しさん
2019/10/15(火) 15:09:04.02ID:WmSwVXlW QZの醜態を全部晒すプログラムを作成せよ
782デフォルトの名無しさん
2019/10/15(火) 15:25:10.73ID:YTs2ZIZB >>781
w3m https://mevius.5ch.net/test/read.cgi/tech/1564310397/ | ~/bin/select_word_and_ancher.pl QZaw55cn4c
https://pastebin.com/MPWNXYG5
https://i.imgur.com/fJi3S6W.png
w3m https://mevius.5ch.net/test/read.cgi/tech/1564310397/ | ~/bin/select_word_and_ancher.pl QZaw55cn4c
https://pastebin.com/MPWNXYG5
https://i.imgur.com/fJi3S6W.png
783デフォルトの名無しさん
2019/10/15(火) 16:06:38.33ID:Ogt2CAsV >>782
くそわろた
くそわろた
784デフォルトの名無しさん
2019/10/16(水) 01:16:39.26ID:bAHdrVWX785デフォルトの名無しさん
2019/10/16(水) 01:58:29.60ID:OEkTBx4G あらら仕事にかまけてほったらかしていたら
先こされちゃったな感
先こされちゃったな感
786デフォルトの名無しさん
2019/10/16(水) 02:04:49.25ID:5tDJE0Z9 QZは自分がキチガイということは全然自覚してないんだろうな
787デフォルトの名無しさん
2019/10/16(水) 08:36:01.98ID:Mi1dGaVf >>786 自覚はあるらしいよ。
788デフォルトの名無しさん
2019/10/16(水) 16:11:48.25ID:EcYqpM5S QZが自身をキチガイだと認識しているのならば、QZはキチガイという言葉の正しい意味を理解していない
789デフォルトの名無しさん
2019/10/16(水) 16:58:30.92ID:NsS1/fO1 誰が見てもQZは頭がおかしいよ
>>789
どういうところが「頭がおかしい」と思ったのですか?
どういうところが「頭がおかしい」と思ったのですか?
791デフォルトの名無しさん
2019/10/17(木) 01:44:31.12ID:QhHbr34y >>790
周囲が迷惑している行為や的外れで頓珍漢な言動をした際にそれを指摘しても、分からないから具体的に言えという。普通の人からすれば明らかな場合であろうと。
そして具体的に説明しても、自分はそう感じないから理解しない、納得しないと言い、言動を改めない。
本人の中では論理的整合性がとれた言動なのかも知れないが、周囲からすれば会話ができない困った奴に見える。
周囲が迷惑している行為や的外れで頓珍漢な言動をした際にそれを指摘しても、分からないから具体的に言えという。普通の人からすれば明らかな場合であろうと。
そして具体的に説明しても、自分はそう感じないから理解しない、納得しないと言い、言動を改めない。
本人の中では論理的整合性がとれた言動なのかも知れないが、周囲からすれば会話ができない困った奴に見える。
792デフォルトの名無しさん
2019/10/17(木) 02:01:41.77ID:Wp46MCu9 朝鮮人に特有な行為だね
793デフォルトの名無しさん
2019/10/17(木) 02:18:55.29ID:E+5qu981 他人の迷惑考えずこんなの貼っちゃう奴だしな
848 ◆QZaw55cn4c sage 2019/07/20(土) 08:18:17.29 ID:jbjCUWIF
お題と回答
5 : 6 10 32 36 44
9 : 15 34 35 79
まんま>>791に該当するわ
848 ◆QZaw55cn4c sage 2019/07/20(土) 08:18:17.29 ID:jbjCUWIF
お題と回答
5 : 6 10 32 36 44
9 : 15 34 35 79
まんま>>791に該当するわ
794デフォルトの名無しさん
2019/10/17(木) 09:29:19.87ID:yTQXhZUg 複素数の多価関数を何度説明しても理解してなかったし脳に欠陥があるのだろう
795デフォルトの名無しさん
2019/10/17(木) 12:35:29.92ID:MLKesy/P 多価関数を理解できなかったのかwww
じゃあリーマン面も分からないだろうな
そんな状態で一丁前に「留数定理」とのたまうから頭おかしい
じゃあリーマン面も分からないだろうな
そんな状態で一丁前に「留数定理」とのたまうから頭おかしい
796デフォルトの名無しさん
2019/10/17(木) 16:53:38.74ID:H8l94EK2798デフォルトの名無しさん
2019/10/17(木) 20:10:25.04ID:Fo0iAhjp >>797
あれだけ明瞭な説明を受けて理解できないどころかはぐらかされたと感じるならばお前は脳の病気だな
あれだけ明瞭な説明を受けて理解できないどころかはぐらかされたと感じるならばお前は脳の病気だな
799デフォルトの名無しさん
2019/10/17(木) 22:10:55.40ID:lFPJOlZz 5chなんて無駄にマウント取るやつばっかりだから、コテつけてごちゃごちゃ言っても時間の無駄だぞ
袋叩きにあうだけ
袋叩きにあうだけ
800デフォルトの名無しさん
2019/10/18(金) 01:24:53.30ID:RRRrLQ0r 自演擁護乙。
801蟻人間 ◆T6xkBnTXz7B0
2019/10/18(金) 23:48:51.61ID:981JMrNY 気を取り直していくぞ。
お題: 現在時刻のアナログ時計のSVG画像を出力せよ。丸い外枠と短針と長針だけでいいが、可能なら秒針と文字盤も表示せよ。
お題: 現在時刻のアナログ時計のSVG画像を出力せよ。丸い外枠と短針と長針だけでいいが、可能なら秒針と文字盤も表示せよ。
802デフォルトの名無しさん
2019/10/19(土) 02:49:07.69ID:PZMkyc4n 暇な人向けのお題:なるべく公正な多数決システムを考案せよ。
サンプル:https://ideone.com/Ayr1Az
上記は多数決して、3人サンプルして、じゃんけんする。というプロセスで導き出される。
サンプル:https://ideone.com/Ayr1Az
上記は多数決して、3人サンプルして、じゃんけんする。というプロセスで導き出される。
803デフォルトの名無しさん
2019/10/19(土) 18:44:38.13ID:PZMkyc4n 暇な人向けのお題II!
9x9のセルが与えられる。そのセルは磁石である。
真空状態での磁気シミュレーションをして量子コンピュータに近似せよ。
一つの万能ではない方針。
1パス目で相互作用を足し込む。
2パス目で相互作用の蓄積を作用素数で割る。
ライフゲームがヒントになるかもしれない。
9x9のセルが与えられる。そのセルは磁石である。
真空状態での磁気シミュレーションをして量子コンピュータに近似せよ。
一つの万能ではない方針。
1パス目で相互作用を足し込む。
2パス目で相互作用の蓄積を作用素数で割る。
ライフゲームがヒントになるかもしれない。
804デフォルトの名無しさん
2019/10/19(土) 18:45:19.24ID:PZMkyc4n >>803
なお、自分は物理学も数学も素人である。。。Orz
なお、自分は物理学も数学も素人である。。。Orz
805デフォルトの名無しさん
2019/10/21(月) 08:37:49.94ID:HKPBZHRe お題
入力された正整数を漢数字表記にして出力せよ
10の何乗まで対応するかは任せる
514 -> 五百十四
131072 -> 十三万千七十二
90010 -> 九万十
入力された正整数を漢数字表記にして出力せよ
10の何乗まで対応するかは任せる
514 -> 五百十四
131072 -> 十三万千七十二
90010 -> 九万十
806デフォルトの名無しさん
2019/10/21(月) 09:41:08.94ID:5iZNWaQ2 >>805 python
%pip install kanjize
from kanjize import int2kanji, kanji2int
print(int2kanji(123456789))
# 一億二千三百四十五万六千七百八十九
%pip install kanjize
from kanjize import int2kanji, kanji2int
print(int2kanji(123456789))
# 一億二千三百四十五万六千七百八十九
807デフォルトの名無しさん
2019/10/21(月) 09:45:18.93ID:HKPBZHRe >>806
そんなのあるのか…
そんなのあるのか…
808デフォルトの名無しさん
2019/10/21(月) 13:26:32.49ID:Yxovtd3S perlの時代には既に存在した
809デフォルトの名無しさん
2019/10/21(月) 13:31:36.37ID:W7vxtZcq じゃあunicodeにシュメル文字が収録されたので、それで。
フフフ、ライブラリなんてあるまい
フフフ、ライブラリなんてあるまい
810デフォルトの名無しさん
2019/10/21(月) 13:35:10.39ID:ZDMJHUdn >>809 Python
%pip install sumerianize
from fumerianize import int2sumerian, sumerian2int
print(int2sumerian(123456789))
# ????????????????????????
%pip install sumerianize
from fumerianize import int2sumerian, sumerian2int
print(int2sumerian(123456789))
# ????????????????????????
811デフォルトの名無しさん
2019/10/21(月) 13:39:33.90ID:n9VxwF2L あんのかよワロタw
812デフォルトの名無しさん
2019/10/21(月) 13:45:48.07ID:qqa/WroJ 逆も欲しいな
漢数字を入れるとアラビア数字に変換するプログラム
漢数字を入れるとアラビア数字に変換するプログラム
813デフォルトの名無しさん
2019/10/21(月) 13:49:33.49ID:BDK5iYLM 表示できてなくて笑う
814デフォルトの名無しさん
2019/10/21(月) 13:50:52.74ID:hy8thByE815デフォルトの名無しさん
2019/10/21(月) 16:23:33.20ID:5iZNWaQ2 >>813 表示できていないのは見る人がフォントを入れていないからだろ。 不思議でも何でもない。
816デフォルトの名無しさん
2019/10/21(月) 16:37:23.10ID:lI38JOob817デフォルトの名無しさん
2019/10/21(月) 17:22:20.45ID:Yxovtd3S818デフォルトの名無しさん
2019/10/21(月) 20:27:05.91ID:niRnsl0k 実はcpanからお題を決めてるんじゃないかなというのがしばらく続いてたと思う
819デフォルトの名無しさん
2019/10/21(月) 22:35:38.51ID:9OcWZn69 ローマ数字との変換、は簡単か
820デフォルトの名無しさん
2019/10/21(月) 22:41:08.96ID:tcnN+Hr+ 何回か出てる。
821デフォルトの名無しさん
2019/10/21(月) 23:57:16.86ID:PlH6WJHg 適当な整数を入力してそれが円周率の何桁目で出てくるか出力せよ。
何桁まで対応するかは任せる。
何桁まで対応するかは任せる。
822デフォルトの名無しさん
2019/10/22(火) 00:08:15.75ID:TSqT/b7n perl だと m/digit/p からの $^{prematch} とかだな
823デフォルトの名無しさん
2019/10/22(火) 12:07:39.33ID:rZX4V0+4 >>821 Perl5、小数点以下10000桁まで一番最初に見つかった桁を出力
$d = 893; # 適当な整数
use Math::BigFloat try => 'GMP,Pari';
$pi = Math::BigFloat->bpi(10000);
#print "$pi\n";
$pi =~ s/\.//; # 小数点「.」を除去
$i = index $pi, $d;
print $i < 0 ? "無し\n" : "小数点以下 $i 桁目\n";
実行結果
~ $ perl 15_821.pl
小数点以下 999 桁目
$d = 893; # 適当な整数
use Math::BigFloat try => 'GMP,Pari';
$pi = Math::BigFloat->bpi(10000);
#print "$pi\n";
$pi =~ s/\.//; # 小数点「.」を除去
$i = index $pi, $d;
print $i < 0 ? "無し\n" : "小数点以下 $i 桁目\n";
実行結果
~ $ perl 15_821.pl
小数点以下 999 桁目
824デフォルトの名無しさん
2019/10/22(火) 12:11:07.49ID:wZUXcjF6 あきらかにNP問題だから解く気がしねえ
825デフォルトの名無しさん
2019/10/22(火) 12:40:06.09ID:E1qN728j じゃあNP問題だと証明しろよ
826デフォルトの名無しさん
2019/10/22(火) 13:54:00.39ID:rZX4V0+4827デフォルトの名無しさん
2019/10/22(火) 16:09:06.09ID:0ZM3PvBa >>825
キチガイすぎて草
キチガイすぎて草
828デフォルトの名無しさん
2019/10/22(火) 19:15:47.41ID:/ue0mcGS ぬるぽ問題
829デフォルトの名無しさん
2019/10/22(火) 19:35:05.18ID:JpCkwFny じゃあそれにしよう。
適当な文章を入力して縦横斜めにぬるぽの3文字が入っていればガッと出力する。
ひらがなだけにするかそれ以上の対応をするかは任せる。
適当な文章を入力して縦横斜めにぬるぽの3文字が入っていればガッと出力する。
ひらがなだけにするかそれ以上の対応をするかは任せる。
830デフォルトの名無しさん
2019/10/22(火) 23:37:52.31ID:0ZM3PvBa >>829 Python
%pip install nurupo
from nurupo import nurupofield
if nurupofield("ぬるぽ")
print("ガッ")
# ガッ
%pip install nurupo
from nurupo import nurupofield
if nurupofield("ぬるぽ")
print("ガッ")
# ガッ
831デフォルトの名無しさん
2019/10/23(水) 00:32:58.65ID:65oBAktI pythonなんでも揃ってんな・・・
832デフォルトの名無しさん
2019/10/23(水) 20:25:56.13ID:LcbXQT4h お題:整数配列の奇数要素のみをソートした配列を返す処理を書いてください
入力例:[6, 5, 4, 3, 2, 1]
出力例:[6, 1, 4, 3, 2, 5]
入力例:[6, 5, 4, 3, 2, 1]
出力例:[6, 1, 4, 3, 2, 5]
833デフォルトの名無しさん
2019/10/23(水) 20:53:09.53ID:oBmkNBH8834デフォルトの名無しさん
2019/10/23(水) 20:53:23.91ID:65oBAktI 奇数だけ抜き出した配列作成→ソート→元の配列の奇数の位置にソートした配列の要素を入れてくだけで良さそう
835デフォルトの名無しさん
2019/10/23(水) 20:54:52.29ID:oBmkNBH8 あ、ダメだこれw
失礼しました
失礼しました
836833
2019/10/23(水) 21:05:23.34ID:oBmkNBH8837デフォルトの名無しさん
2019/10/23(水) 22:37:14.26ID:PSSarBFK >>832 Perl5
@s = (6, 5, 4, 3, 2, 1);
@ix = grep{$s[$_] & 1} keys @s;
@iy = sort{$s[$a] <=> $s[$b]} @ix;
@s[@ix] = @s[@iy];
use Data::Dump 'dump';
print dump @s;
実行結果
~ $ perl 15_832_sort_odd_elem.pl
(6, 1, 4, 3, 2, 5)
@s = (6, 5, 4, 3, 2, 1);
@ix = grep{$s[$_] & 1} keys @s;
@iy = sort{$s[$a] <=> $s[$b]} @ix;
@s[@ix] = @s[@iy];
use Data::Dump 'dump';
print dump @s;
実行結果
~ $ perl 15_832_sort_odd_elem.pl
(6, 1, 4, 3, 2, 5)
838デフォルトの名無しさん
2019/10/24(木) 08:28:31.82ID:5RTZY+Zo839デフォルトの名無しさん
2019/10/24(木) 09:51:33.40ID:76TAYxNw >>832
p [6, 5, 4, 3, 2, 1].partition.with_index{|_, i| i.even?}.then{|e, o| e.zip(o.sort).flatten}
# => [6, 1, 4, 3, 2, 5]
p [6, 5, 4, 3, 2, 1].partition.with_index{|_, i| i.even?}.then{|e, o| e.zip(o.sort).flatten}
# => [6, 1, 4, 3, 2, 5]
840デフォルトの名無しさん
2019/10/24(木) 09:51:53.30ID:76TAYxNw >>839 Ruby 2.6.0
841デフォルトの名無しさん
2019/10/24(木) 12:04:34.69ID:yRKIAYVV >>839
[6, 5, 3, 2, 1] とかだと結果が間違っている上、nilとか足されてひどいことになるyo?
p [6, 5, 3, 2, 1].partition.with_index{|_, i| i.even?}.then{|e, o| e.zip(o.sort).flatten}
# => [6, 2, 3, 5, 1, nil]
正しくは => [6, 1, 3, 2, 5]
[6, 5, 3, 2, 1] とかだと結果が間違っている上、nilとか足されてひどいことになるyo?
p [6, 5, 3, 2, 1].partition.with_index{|_, i| i.even?}.then{|e, o| e.zip(o.sort).flatten}
# => [6, 2, 3, 5, 1, nil]
正しくは => [6, 1, 3, 2, 5]
842デフォルトの名無しさん
2019/10/24(木) 15:41:34.92ID:gElHX+jG >>832
Kotlin
https://paiza.io/projects/RXWCx9-WsZvakBKGgIo1UA
やり方は >>834 に書かれている通り。
しかし、もっとスマートな方法はないものか?
ありそうだが思い浮かばない。
Kotlin
https://paiza.io/projects/RXWCx9-WsZvakBKGgIo1UA
やり方は >>834 に書かれている通り。
しかし、もっとスマートな方法はないものか?
ありそうだが思い浮かばない。
843デフォルトの名無しさん
2019/10/24(木) 16:54:57.81ID:ZpMPcQ0n844デフォルトの名無しさん
2019/10/24(木) 21:24:20.41ID:YtgvOVKx845デフォルトの名無しさん
2019/10/24(木) 23:20:25.74ID:33G0+sWg >>838
さすがJニキ、さっぱりわからん…
さすがJニキ、さっぱりわからん…
846デフォルトの名無しさん
2019/10/25(金) 00:26:52.21ID:GgLEjF73 アプリ作成したいのですが、素人なのでどなたか相談に乗ってください。
飲み物が入ったコップを定期的に重量を量り、
そのデータを無線で受信してサーバーで記録し
プロットするアプリを作りたいです。
またRaspiなどのPCはなしで作りたいのですが
組み込みPC?を使わないとできませんか?
またこういったアプリに適した言語などありますでしょうか?
飲み物が入ったコップを定期的に重量を量り、
そのデータを無線で受信してサーバーで記録し
プロットするアプリを作りたいです。
またRaspiなどのPCはなしで作りたいのですが
組み込みPC?を使わないとできませんか?
またこういったアプリに適した言語などありますでしょうか?
847デフォルトの名無しさん
2019/10/25(金) 00:32:12.57ID:D+sRag4r プログラム部分はたいしたことがないとおもうのだが
装置、ハードのほうが大事だろ
そもそもプログラムもハード依存するかもしれないし
特に既成品なら
装置、ハードのほうが大事だろ
そもそもプログラムもハード依存するかもしれないし
特に既成品なら
848デフォルトの名無しさん
2019/10/25(金) 00:48:27.50ID:GgLEjF73 ありがとうございます。
ハードウェアの知識が全く無いため困っています。
飼い猫のために水の量を管理してあげたいんです。
下記のような組み合わせで出来そうでしょうか?
ADコンバータ
KKHMF HX711モジュール 秤量センサー 24位精度ADモジュール 圧力センサーモジュール
重量センサー
uxcell 計量ロードセル アルミ合金材質 500g計量 電子天秤 有線 計量センサー
ハードウェアの知識が全く無いため困っています。
飼い猫のために水の量を管理してあげたいんです。
下記のような組み合わせで出来そうでしょうか?
ADコンバータ
KKHMF HX711モジュール 秤量センサー 24位精度ADモジュール 圧力センサーモジュール
重量センサー
uxcell 計量ロードセル アルミ合金材質 500g計量 電子天秤 有線 計量センサー
849デフォルトの名無しさん
2019/10/25(金) 03:57:48.67ID:uJcHRouN やり方わからないんだけど、カメラで撮影して映像解析して量が分かるのであればスマホやタブレット用のアプリでできそうだよね。
(PCに小さいカメラ付けても良いが)。
(PCに小さいカメラ付けても良いが)。
850デフォルトの名無しさん
2019/10/25(金) 04:08:18.02ID:rztx2iSz >>848
適切なスレに移動した方がいいぞ
適切なスレに移動した方がいいぞ
851デフォルトの名無しさん
2019/10/25(金) 09:43:45.15ID:C/odSq3f センサーの話題などは、Linux 板のラズパイのスレで聞けば?
852デフォルトの名無しさん
2019/10/25(金) 09:56:31.28ID:VVjeWd6A853デフォルトの名無しさん
2019/10/25(金) 11:49:06.01ID:C/odSq3f >>832
Ruby で、
input_ary = [ 6, 5, 4, 3, 2, 1 ]
odd_ary = [ ]; index_ary = [ ]
input_ary.each_with_index do |num, idx|
if num.odd?
odd_ary.push num
index_ary.push idx
end
end
odd_ary.sort! # ソート
# 同時に、複数の配列をループする
index_ary.zip( odd_ary ).each { |idx, num| input_ary[ idx ] = num }
p input_ary
Ruby で、
input_ary = [ 6, 5, 4, 3, 2, 1 ]
odd_ary = [ ]; index_ary = [ ]
input_ary.each_with_index do |num, idx|
if num.odd?
odd_ary.push num
index_ary.push idx
end
end
odd_ary.sort! # ソート
# 同時に、複数の配列をループする
index_ary.zip( odd_ary ).each { |idx, num| input_ary[ idx ] = num }
p input_ary
854デフォルトの名無しさん
2019/10/25(金) 12:30:51.02ID:GgLEjF73 >> 849 , 850, 851, 852
情報ありがとうございます。
スレチだったみたいで申し訳ないです。
センサーありきなので、Raspiは使わないと思うのですが
板覗いてみます。
情報ありがとうございます。
スレチだったみたいで申し訳ないです。
センサーありきなので、Raspiは使わないと思うのですが
板覗いてみます。
855デフォルトの名無しさん
2019/10/25(金) 14:59:52.83ID:ylwTeYJx856デフォルトの名無しさん
2019/10/26(土) 01:38:30.03ID:o5w2ifn2 お題: 端末上で(´・ω・`)を端から端まで移動し、往復させよ
ただし、端についたら(´・ω・`)は増幅し(´・ω・`)(´・ω・`)になる
同様に再び端についたら(´・ω・`)(´・ω・`)は増幅し(´・ω・`)(´・ω・`)(´・ω・`)になる
左右に移動できなくなる又ははみ出す場合は逆に(´・ω・`)を減らしていき、最終的に(´・ω・`)を消滅させよ
ただし、端についたら(´・ω・`)は増幅し(´・ω・`)(´・ω・`)になる
同様に再び端についたら(´・ω・`)(´・ω・`)は増幅し(´・ω・`)(´・ω・`)(´・ω・`)になる
左右に移動できなくなる又ははみ出す場合は逆に(´・ω・`)を減らしていき、最終的に(´・ω・`)を消滅させよ
857デフォルトの名無しさん
2019/10/26(土) 06:24:17.44ID:2eoY+VbT お題: Unicode 1 文字を与えると East Asian Width に従った属性値を返す関数を作成し、その関数に対して任意の文字を与えてテストするプログラムを作れ。
返す属性値の F, H, W, Na, A, N は文字列でも良いし対応する数値でも良いし enum のような(またはCなら #define されている)名前でも良い。
East Asian Width の一覧は下記URLのテキストの内容を使用する。これを最初に読んで初期化するように作っても良いし、最初からプログラムに適した形式で埋め込まれていても良い。
http://www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt
参考: 東アジアの文字幅
https://ja.wikipedia.org/wiki/%E6%9D%B1%E3%82%A2%E3%82%B8%E3%82%A2%E3%81%AE%E6%96%87%E5%AD%97%E5%B9%85
返す属性値の F, H, W, Na, A, N は文字列でも良いし対応する数値でも良いし enum のような(またはCなら #define されている)名前でも良い。
East Asian Width の一覧は下記URLのテキストの内容を使用する。これを最初に読んで初期化するように作っても良いし、最初からプログラムに適した形式で埋め込まれていても良い。
http://www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt
参考: 東アジアの文字幅
https://ja.wikipedia.org/wiki/%E6%9D%B1%E3%82%A2%E3%82%B8%E3%82%A2%E3%81%AE%E6%96%87%E5%AD%97%E5%B9%85
858デフォルトの名無しさん
2019/10/26(土) 07:11:59.41ID:I0XoRu/q お題:>>832 に「偶数要素は2で割って降順ソート」という要件を追加してください
すでに回答済みの場合は最少限の変更でのご対応で腕(もしくは言語のポテンシャル)を見せてください
すでに回答済みの場合は最少限の変更でのご対応で腕(もしくは言語のポテンシャル)を見せてください
859デフォルトの名無しさん
2019/10/26(土) 07:27:04.95ID:I0XoRu/q860デフォルトの名無しさん
2019/10/26(土) 11:01:29.07ID:/Rj6VhaF >>832 Pharo/Squeak Smalltalk
| fn |
fn := [:arr |
| sortedOdds |
sortedOdds := (arr select: #odd) sort readStream.
arr collect: [:x | x odd ifTrue: [sortedOdds next] ifFalse: [x]]
].
fn value: #(6 5 4 3 2 1) "=> #(6 1 4 3 2 5) "
>>835
| fn |
fn := [:arr |
| sortedOdds sortedHalfEvens |
sortedOdds := (arr select: #odd) sort readStream.
sortedHalfEvens := ((arr select: #even) sort reversed / 2) readStream.
arr collect: [:x | x odd ifTrue: [sortedOdds next] ifFalse: [sortedHalfEvens next]]
].
fn value: #(0 9 8 4 6 5 1 2 7 3) "=> #(4 1 3 2 1 3 5 0 7 9) "
| fn |
fn := [:arr |
| sortedOdds |
sortedOdds := (arr select: #odd) sort readStream.
arr collect: [:x | x odd ifTrue: [sortedOdds next] ifFalse: [x]]
].
fn value: #(6 5 4 3 2 1) "=> #(6 1 4 3 2 5) "
>>835
| fn |
fn := [:arr |
| sortedOdds sortedHalfEvens |
sortedOdds := (arr select: #odd) sort readStream.
sortedHalfEvens := ((arr select: #even) sort reversed / 2) readStream.
arr collect: [:x | x odd ifTrue: [sortedOdds next] ifFalse: [sortedHalfEvens next]]
].
fn value: #(0 9 8 4 6 5 1 2 7 3) "=> #(4 1 3 2 1 3 5 0 7 9) "
861デフォルトの名無しさん
2019/10/26(土) 11:03:35.88ID:/Rj6VhaF862デフォルトの名無しさん
2019/10/26(土) 11:45:52.80ID:4aRwI3hq >>859 Perl5、最小限でか…
@s = (0, 9, 8, 4, 6, 5, 1, 2, 7, 3);
@ix = grep{$s[$_] & 1} keys @s;
@iy = sort{$s[$a] <=> $s[$b]} @ix;
@s[@ix] = @s[@iy];
@iz = grep{~$s[$_] & 1} keys @s;
@s[@iz] = map{$_ / 2} reverse sort{$a <=> $b} @s[@iz];
use Data::Dump 'dump';
print dump @s;
実行結果
~ $ perl 15_859.pl
(4, 1, 3, 2, 1, 3, 5, 0, 7, 9)
@s = (0, 9, 8, 4, 6, 5, 1, 2, 7, 3);
@ix = grep{$s[$_] & 1} keys @s;
@iy = sort{$s[$a] <=> $s[$b]} @ix;
@s[@ix] = @s[@iy];
@iz = grep{~$s[$_] & 1} keys @s;
@s[@iz] = map{$_ / 2} reverse sort{$a <=> $b} @s[@iz];
use Data::Dump 'dump';
print dump @s;
実行結果
~ $ perl 15_859.pl
(4, 1, 3, 2, 1, 3, 5, 0, 7, 9)
863デフォルトの名無しさん
2019/10/26(土) 12:12:03.02ID:Zgyrlv2c864デフォルトの名無しさん
2019/10/26(土) 12:22:15.14ID:GFiKSQ9h >>856
Porwershell。バージョンによってはプロンプト画面に直接貼り付けると$sの文字列が
化けるので、その場合はファイルに保存して実行。
$s = "('・ω・``)"
$w = $Host.UI.RawUI.WindowSize.Width - 1
$m = [Math]::Floor($w / 10)
foreach ($n in 1..$m + ($m - 1)..0) {
$d = $w - 10 * $n
foreach ($x in (($d..1), (1..$d))[$n % 2]) {
$l = "`r" + " " * $x + $s * $n + " " * ($d - $x)
Write-Host $l -NoNewline
if (!$n) {Write-Host; break}
Sleep -m 20
}
}
Porwershell。バージョンによってはプロンプト画面に直接貼り付けると$sの文字列が
化けるので、その場合はファイルに保存して実行。
$s = "('・ω・``)"
$w = $Host.UI.RawUI.WindowSize.Width - 1
$m = [Math]::Floor($w / 10)
foreach ($n in 1..$m + ($m - 1)..0) {
$d = $w - 10 * $n
foreach ($x in (($d..1), (1..$d))[$n % 2]) {
$l = "`r" + " " * $x + $s * $n + " " * ($d - $x)
Write-Host $l -NoNewline
if (!$n) {Write-Host; break}
Sleep -m 20
}
}
865デフォルトの名無しさん
2019/10/26(土) 13:49:47.32ID:f6JeNzn+ Mathematica12
定義
f1[a_]:=SubsetMap[Sort,a,Position[a,_?OddQ,1]]
f2[a_]:=SubsetMap[ReverseSort[#]/2&,f1[a],Position[a,_?EvenQ,1]]
実行結果
f1[{6,5,4,3,2,1}]
{6,1,4,3,2,5}
f2[{0,9,8,4,6,5,1,2,7,3}]
{4,1,3,2,1,3,5,0,7,9}
定義
f1[a_]:=SubsetMap[Sort,a,Position[a,_?OddQ,1]]
f2[a_]:=SubsetMap[ReverseSort[#]/2&,f1[a],Position[a,_?EvenQ,1]]
実行結果
f1[{6,5,4,3,2,1}]
{6,1,4,3,2,5}
f2[{0,9,8,4,6,5,1,2,7,3}]
{4,1,3,2,1,3,5,0,7,9}
866デフォルトの名無しさん
2019/10/26(土) 17:08:24.41ID:kYj2w42l >>832, >>858 Ruby
f = -> ary {
e, o = ary.partition(&:even?).map(&:sort)
ary.map{|v| v.even? ? v : o.shift}
}
g = -> ary {
e, o = ary.partition(&:even?).map(&:sort)
ary.map{|v| v.even? ? e.pop >> 1 : o.shift}
}
p f[[6, 5, 4, 3, 2, 1]] # => [6, 1, 4, 3, 2, 5]
p g[[0, 9, 8, 4, 6, 5, 1, 2, 7, 3]] # => [4, 1, 3, 2, 1, 3, 5, 0, 7, 9]
f = -> ary {
e, o = ary.partition(&:even?).map(&:sort)
ary.map{|v| v.even? ? v : o.shift}
}
g = -> ary {
e, o = ary.partition(&:even?).map(&:sort)
ary.map{|v| v.even? ? e.pop >> 1 : o.shift}
}
p f[[6, 5, 4, 3, 2, 1]] # => [6, 1, 4, 3, 2, 5]
p g[[0, 9, 8, 4, 6, 5, 1, 2, 7, 3]] # => [4, 1, 3, 2, 1, 3, 5, 0, 7, 9]
867デフォルトの名無しさん
2019/10/26(土) 20:25:43.01ID:XXeS+kK0868デフォルトの名無しさん
2019/10/26(土) 22:02:49.24ID:+YWUVQNg >>856
https://ideone.com/lw7uIj
C++。なんか表示位置ずれるなーと思ったら、「()」これ半角じゃねーか。
そのせいで、プログラムが持ってる長さと表示の長さが合わなかった。
しかし、汚くなった無し、思ったより時間がかかってしまった。
https://ideone.com/lw7uIj
C++。なんか表示位置ずれるなーと思ったら、「()」これ半角じゃねーか。
そのせいで、プログラムが持ってる長さと表示の長さが合わなかった。
しかし、汚くなった無し、思ったより時間がかかってしまった。
869デフォルトの名無しさん
2019/10/26(土) 22:16:30.14ID:FFSD3o8O >>858 octave
https://ideone.com/d5NTlm
>>858 ruby
https://ideone.com/R93NWY
>>858 ocaml
https://ideone.com/RTlP5X
https://ideone.com/d5NTlm
>>858 ruby
https://ideone.com/R93NWY
>>858 ocaml
https://ideone.com/RTlP5X
870デフォルトの名無しさん
2019/10/26(土) 22:21:47.70ID:+YWUVQNg871蟻人間 ◆T6xkBnTXz7B0
2019/10/26(土) 22:38:02.04ID:Q5f3+aYX お題: あるフォルダ(例えばC:\Windows)についてフォルダの階層構造を木構造(tree)を表すテキストとして出力せよ。
インデントでもいい。罫線を使ってもいい。
インデントでもいい。罫線を使ってもいい。
872デフォルトの名無しさん
2019/10/26(土) 22:38:38.76ID:T/HAOzs9 tree
873デフォルトの名無しさん
2019/10/26(土) 22:46:14.97ID:a/Ne+y1n 完
874蟻人間 ◆T6xkBnTXz7B0
2019/10/26(土) 23:33:25.57ID:0HLEEd3+ 熟
875デフォルトの名無しさん
2019/10/26(土) 23:36:46.58ID:Up+ppHZL ト
876デフォルトの名無しさん
2019/10/26(土) 23:56:14.95ID:mT+r0MIT マ
877デフォルトの名無しさん
2019/10/27(日) 01:42:02.89ID:98GTxTrH ホ
878デフォルトの名無しさん
2019/10/27(日) 01:48:49.90ID:hTxWtEZY ー
879デフォルトの名無しさん
2019/10/27(日) 02:14:55.86ID:qZK0Jir5 ク
880デフォルトの名無しさん
2019/10/27(日) 12:00:30.73ID:czi1K5eV >>858-859
PowerShell
$a = 0, 9, 8, 4, 6, 5, 1, 2, 7, 3
$b = 0, 0
$i = 0, 0
$odd = {$_ % 2}
$b[0] = @($a |? {!(&$odd)} |% {$_ / 2} | sort -descending)
$b[1] = @($a |? {&$odd} | sort)
$c = $a |% {$b[(&$odd)][$i[(&$odd)]++]}
"入力: [" + ($a -join ", ") + "]"
"出力: [" + ($c -join ", ") + "]"
PowerShell
$a = 0, 9, 8, 4, 6, 5, 1, 2, 7, 3
$b = 0, 0
$i = 0, 0
$odd = {$_ % 2}
$b[0] = @($a |? {!(&$odd)} |% {$_ / 2} | sort -descending)
$b[1] = @($a |? {&$odd} | sort)
$c = $a |% {$b[(&$odd)][$i[(&$odd)]++]}
"入力: [" + ($a -join ", ") + "]"
"出力: [" + ($c -join ", ") + "]"
881デフォルトの名無しさん
2019/10/27(日) 21:46:52.77ID:JAeIkS65882デフォルトの名無しさん
2019/10/28(月) 14:33:15.95ID:kjzN6NI8883デフォルトの名無しさん
2019/10/28(月) 21:54:57.80ID:UPe4TNxT Common Lisp
>>832
(let* ((l '(6 5 4 3 2 1))
(odds (sort (remove-if-not #'oddp l) #'<)))
(mapcar (lambda (x) (if (oddp x) (pop odds) x)) l))
>>858-859
(let* ((l '(0 9 8 4 6 5 1 2 7 3))
(odds (sort (remove-if-not #'oddp l) #'<))
(evens (sort (remove-if-not #'evenp l) #'>)))
(mapcar (lambda (x) (if (oddp x) (pop odds) (/ (pop evens) 2))) l))
>>832
(let* ((l '(6 5 4 3 2 1))
(odds (sort (remove-if-not #'oddp l) #'<)))
(mapcar (lambda (x) (if (oddp x) (pop odds) x)) l))
>>858-859
(let* ((l '(0 9 8 4 6 5 1 2 7 3))
(odds (sort (remove-if-not #'oddp l) #'<))
(evens (sort (remove-if-not #'evenp l) #'>)))
(mapcar (lambda (x) (if (oddp x) (pop odds) (/ (pop evens) 2))) l))
884蟻人間 ◆T6xkBnTXz7B0
2019/10/28(月) 22:20:53.11ID:9dus/Ppg885デフォルトの名無しさん
2019/10/28(月) 22:33:53.27ID:cHOU2eIF >>871
Powershell。標準のtreeコマンドと違い、システム/隠しフォルダも表示する。
バージョンによってはプロンプト画面に貼り付けると罫線文字が消えてしまうので、
その場合はps1ファイルに保存して実行するか、PowerShell ISEに貼り付ける。
function MyTree($path, $branch)
{
if (!$branch) {$path}
$dir = @(ls -Force -PSPath $path -EV e -EA SilentlyContinue |? {$_.PSIsContainer})
if ($e) {$branch + "::アクセス不可"}
if (!$dir) {return}
0..($last = $dir.Count - 1) |% {
$branch + ("├─", "└─")[$_ -eq $last] + $dir[$_].Name
MyTree $dir[$_].FullName ($branch + ("│ ", " ")[$_ -eq $last])
}
}
MyTree "C:\Windows"
Powershell。標準のtreeコマンドと違い、システム/隠しフォルダも表示する。
バージョンによってはプロンプト画面に貼り付けると罫線文字が消えてしまうので、
その場合はps1ファイルに保存して実行するか、PowerShell ISEに貼り付ける。
function MyTree($path, $branch)
{
if (!$branch) {$path}
$dir = @(ls -Force -PSPath $path -EV e -EA SilentlyContinue |? {$_.PSIsContainer})
if ($e) {$branch + "::アクセス不可"}
if (!$dir) {return}
0..($last = $dir.Count - 1) |% {
$branch + ("├─", "└─")[$_ -eq $last] + $dir[$_].Name
MyTree $dir[$_].FullName ($branch + ("│ ", " ")[$_ -eq $last])
}
}
MyTree "C:\Windows"
886デフォルトの名無しさん
2019/10/28(月) 23:08:40.85ID:F/Wh8ChL >>884
100年前からあるよ
100年前からあるよ
887デフォルトの名無しさん
2019/10/28(月) 23:13:15.22ID:uBs49FGp 色わけもされているのが良くあり、たいへん見やすい
888蟻人間 ◆T6xkBnTXz7B0
2019/10/29(火) 01:01:17.43ID:CdNgVa0z お題: 平面(0, 0)-(100,100)上に点を100個、配置する。k-means法を用いて点の集合を3つのグループに分け、それらを図示せよ。
889デフォルトの名無しさん
2019/10/29(火) 08:42:30.06ID:CowX2GWO >>858-859
Ruby で、
input_ary = [ 0, 9, 8, 4, 6, 5, 1, 2, 7, 3 ]
even_ary, odd_ary = input_ary.partition( &:even? ) # 偶数・奇数配列
odd_ary.sort! # 奇数要素をソート
# 偶数要素は、2で割って降順ソート
even_ary.map! { |num| num / 2 }
even_ary.sort!
even_ary.reverse!
p results = input_ary.map { |num| num.even? ? even_ary.shift : odd_ary.shift } # 偶数・奇数
Ruby で、
input_ary = [ 0, 9, 8, 4, 6, 5, 1, 2, 7, 3 ]
even_ary, odd_ary = input_ary.partition( &:even? ) # 偶数・奇数配列
odd_ary.sort! # 奇数要素をソート
# 偶数要素は、2で割って降順ソート
even_ary.map! { |num| num / 2 }
even_ary.sort!
even_ary.reverse!
p results = input_ary.map { |num| num.even? ? even_ary.shift : odd_ary.shift } # 偶数・奇数
890デフォルトの名無しさん
2019/10/29(火) 11:11:57.21ID:8fHMSau6 やっぱり初心者にはまず黒い画面のCUIからやらせたほうがいいな
891デフォルトの名無しさん
2019/10/29(火) 18:19:47.29ID:BWleRN1J 設定で白い画面にすると心が和らぐかも知れない
892デフォルトの名無しさん
2019/10/29(火) 18:42:27.40ID:plxF2L4V 目がクラッシュ
893デフォルトの名無しさん
2019/10/29(火) 21:04:32.22ID:OodB9NB8 日本標準時2100に起動し、Web上から文字列「惣流・アスカ・ラングレー」を含む.jpgファイルもしくは.jpegあるいは.pingファイルをC:秘蔵に1GB分保存するコードを教えてください
894デフォルトの名無しさん
2019/10/29(火) 21:19:03.11ID:zdS42c06 式波だろオッサン
895デフォルトの名無しさん
2019/10/29(火) 22:05:19.10ID:xXVEd4hK >>893
0 21 * * * sudo less BigWeb | grep アスラン・ザラ > home/C/H_file limit 1GB
0 21 * * * sudo less BigWeb | grep アスラン・ザラ > home/C/H_file limit 1GB
896デフォルトの名無しさん
2019/10/29(火) 22:18:10.10ID:VtVeF5OO >>893
firebird -t0:21:0:0 --everyday --query 惣流・アスカ・ラングレー --suffix "jpg|jpeg|ping" --dst "C:\secret" --limit 1GB
firebird -t0:21:0:0 --everyday --query 惣流・アスカ・ラングレー --suffix "jpg|jpeg|ping" --dst "C:\secret" --limit 1GB
897デフォルトの名無しさん
2019/10/30(水) 00:58:38.18ID:VQ6oDJg7 pingファイルわらた
898デフォルトの名無しさん
2019/10/30(水) 04:42:26.93ID:LML0ucqT アイが隠っている
899デフォルトの名無しさん
2019/11/01(金) 22:31:20.50ID:5BPqTvCN お題: 3^3^3^... のような反復指数を10の反復指数に近似するプログラムを作成しなさい。
入力されるそれぞれの指数は1より大きい実数とします。
計算後の最も右の指数xは 1<x≦10 としてください。
例:
3^3^3^3^3^3 = 10^10^10^10^10^1.099
2.718^2.718^2.718^2.718^7.705 = 10^10^10^10^2.983
(5.0e+50)^(6.0e+60)^(7.0e+70)^(8.0e+80)^(9.0e+90) = 10^10^10^10^10^10^1.968
1.1^1.1^1.1^1.1^1.1 = 1.112
入力されるそれぞれの指数は1より大きい実数とします。
計算後の最も右の指数xは 1<x≦10 としてください。
例:
3^3^3^3^3^3 = 10^10^10^10^10^1.099
2.718^2.718^2.718^2.718^7.705 = 10^10^10^10^2.983
(5.0e+50)^(6.0e+60)^(7.0e+70)^(8.0e+80)^(9.0e+90) = 10^10^10^10^10^10^1.968
1.1^1.1^1.1^1.1^1.1 = 1.112
900デフォルトの名無しさん
2019/11/01(金) 23:58:48.16ID:Yq8XY12s a^n = b^x を解く問題でいいじゃん
902デフォルトの名無しさん
2019/11/02(土) 14:21:37.47ID:ZDjpW1U6903蟻人間 ◆T6xkBnTXz7B0
2019/11/02(土) 16:24:06.83ID:3ZL9CX49 10^1〜10^10で二分探索を繰り返しかな?
904デフォルトの名無しさん
2019/11/02(土) 17:38:05.70ID:q/Mbih9P >>899
https://ideone.com/0Xqylu
C++。あってるか知らんけど、知識を動員して解いてみたんだけど、あってる?
三の3乗を6回やったら、doubleでinfになるので解けねーわ。うわわーん。
https://ideone.com/0Xqylu
C++。あってるか知らんけど、知識を動員して解いてみたんだけど、あってる?
三の3乗を6回やったら、doubleでinfになるので解けねーわ。うわわーん。
905デフォルトの名無しさん
2019/11/02(土) 18:12:47.84ID:41WzS7Cc >>904
コード一切読んでないけどお前のは間違ってると思うよ
コード一切読んでないけどお前のは間違ってると思うよ
906デフォルトの名無しさん
2019/11/02(土) 18:39:57.30ID:q/Mbih9P907デフォルトの名無しさん
2019/11/02(土) 19:40:47.26ID:0iFQzt0L >>899
PowerShellで最初の2例だけ。
function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}
function tetrconv($a)
{
$k = lg ((pow $a[-2] $a[-1]) * (lg $a[-3]) + (lg (lg $a[-4])))
$b = @(10) * ($a.count - 1) + [Math]::round($k, 3)
($a -join "^") + " = " + ($b -join "^")
}
tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
PowerShellで最初の2例だけ。
function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}
function tetrconv($a)
{
$k = lg ((pow $a[-2] $a[-1]) * (lg $a[-3]) + (lg (lg $a[-4])))
$b = @(10) * ($a.count - 1) + [Math]::round($k, 3)
($a -join "^") + " = " + ($b -join "^")
}
tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
908デフォルトの名無しさん
2019/11/02(土) 21:32:51.49ID:0iFQzt0L >>899
最後の2例にも対応した。
function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}
function tetrconv($a)
{
$k = $a[-1]
foreach ($i in -2..-$a.count) {
if ($k -gt 10) {break}
$k = pow $a[$i] $k
}
if ($i - 1 -ge -$a.count) {$k *= lg $a[$i - 1]}
if ($i - 2 -ge -$a.count) {$k += lg (lg $a[$i - 2])}
while ($k -gt 10) {
$k = lg $k
$i++
}
if ($i += $a.count) {$i++}
$b = @(10) * $i + [Math]::round($k, 3)
($a -join "^") + " = " + ($b -join "^")
}
tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
tetrconv (5.0e50, 6.0e60, 7.0e70, 8.0e80, 9.0e90)
tetrconv (@(1.1) * 5)
最後の2例にも対応した。
function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}
function tetrconv($a)
{
$k = $a[-1]
foreach ($i in -2..-$a.count) {
if ($k -gt 10) {break}
$k = pow $a[$i] $k
}
if ($i - 1 -ge -$a.count) {$k *= lg $a[$i - 1]}
if ($i - 2 -ge -$a.count) {$k += lg (lg $a[$i - 2])}
while ($k -gt 10) {
$k = lg $k
$i++
}
if ($i += $a.count) {$i++}
$b = @(10) * $i + [Math]::round($k, 3)
($a -join "^") + " = " + ($b -join "^")
}
tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
tetrconv (5.0e50, 6.0e60, 7.0e70, 8.0e80, 9.0e90)
tetrconv (@(1.1) * 5)
909デフォルトの名無しさん
2019/11/03(日) 00:32:05.95ID:ORedds2P 偶数の場合は半分に、奇数の場合は3倍して1加算して結果が1になるまでその数値を出力してください。
1まで出力して完了です。
単純だけど、どこまで短く書ける?
1まで出力して完了です。
単純だけど、どこまで短く書ける?
910デフォルトの名無しさん
2019/11/03(日) 00:36:48.03ID:ZBjdhNSI >>909
コラッツ予想はもうおなかいっぱいだわ
コラッツ予想はもうおなかいっぱいだわ
911デフォルトの名無しさん
2019/11/03(日) 12:57:12.82ID:ax9Okew1 コラッて怒れば良いんじゃないかな
912デフォルトの名無しさん
2019/11/03(日) 13:57:01.56ID:mZU6qafh913デフォルトの名無しさん
2019/11/03(日) 15:49:54.73ID:kVBOYkVG914デフォルトの名無しさん
2019/11/03(日) 18:50:15.71ID:6KV8hNPc 縦と横のサイズが与えられるのでアスペクト比を求めよ
915デフォルトの名無しさん
2019/11/03(日) 20:03:15.96ID:PuBKYFzC 比は整数のみ?
916デフォルトの名無しさん
2019/11/03(日) 21:50:08.17ID:rJL4Vpjg >>899
別の入力値 (例えば@(1.7) * 5や@(1.5) * 14) を試してみたら出力値がおかしかったので修正。
function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}
function tetrconv($a)
{
$k = 1
foreach ($i in ($a.count - 1)..0) {
$k = pow $a[$i] $k
if ($k -gt 20) {break}
}
if ($i -ge 1) {$k *= lg $a[$i - 1]}
if ($i -ge 2) {$k += lg (lg $a[$i - 2])}
while ($k -gt 10) {
$k = lg $k
$i++
}
$b = @(10) * $i + [Math]::round($k, 3)
($a -join "^") + " = " + ($b -join "^")
}
tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
tetrconv (5.0e+50, 6.0e+60, 7.0e+70, 8.0e+80, 9.0e+90)
tetrconv (@(1.1) * 5)
別の入力値 (例えば@(1.7) * 5や@(1.5) * 14) を試してみたら出力値がおかしかったので修正。
function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}
function tetrconv($a)
{
$k = 1
foreach ($i in ($a.count - 1)..0) {
$k = pow $a[$i] $k
if ($k -gt 20) {break}
}
if ($i -ge 1) {$k *= lg $a[$i - 1]}
if ($i -ge 2) {$k += lg (lg $a[$i - 2])}
while ($k -gt 10) {
$k = lg $k
$i++
}
$b = @(10) * $i + [Math]::round($k, 3)
($a -join "^") + " = " + ($b -join "^")
}
tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
tetrconv (5.0e+50, 6.0e+60, 7.0e+70, 8.0e+80, 9.0e+90)
tetrconv (@(1.1) * 5)
917デフォルトの名無しさん
2019/11/04(月) 07:30:04.95ID:T8mOMaiU お題:
m から n までの整数のうち、桁数字の和が s になるものをすべて列挙する
関数を書け。
具体的に:
1 から 100 までの整数のうち、桁数字の和が 12 になるものは、
39、48、57、66、75、84、93 である。
関数の実行例:
f(1, 100, 12) → [39, 48, 57, 66, 75, 84, 93]
m から n までの整数のうち、桁数字の和が s になるものをすべて列挙する
関数を書け。
具体的に:
1 から 100 までの整数のうち、桁数字の和が 12 になるものは、
39、48、57、66、75、84、93 である。
関数の実行例:
f(1, 100, 12) → [39, 48, 57, 66, 75, 84, 93]
918デフォルトの名無しさん
2019/11/04(月) 10:20:33.30ID:xKwnPcPn 数列和好きだね これで何回目だ?
数列和求めて何か嬉しいのか? 簡易計算ミスを防げるとか
数列和求めて何か嬉しいのか? 簡易計算ミスを防げるとか
919デフォルトの名無しさん
2019/11/04(月) 10:51:39.60ID:FzGFhotx920デフォルトの名無しさん
2019/11/04(月) 12:37:41.26ID:7wrIz40y921デフォルトの名無しさん
2019/11/04(月) 14:30:03.94ID:obVJwnOe922デフォルトの名無しさん
2019/11/04(月) 19:33:38.63ID:xKwnPcPn タイポ
数字和 >744 などにでてくるやつ
数字和 >744 などにでてくるやつ
923デフォルトの名無しさん
2019/11/04(月) 19:35:11.53ID:6jo2x8my >>917
PowerShellで単純に書けば
function f($a, $b, $s) {$a..$b |? {(iex ([char[]]"$_" -join "+")) -eq $s}}
f 1 100 12
だが、桁が増えると遅すぎるので、少し工夫すると、
$M = [Math]
function g($s, $n)
{
if ($n -eq 1) {return $s}
$d = $M::pow(10, $n - 1)
for ($i = $M::max(0, $s - 9 * ($n - 1)); $i -le $M::min(9, $s); $i++) {
g ($s - $i) ($n - 1) |% {$d * $i + $_}
}
}
function f($a, $b, $s)
{
g $s ($M::ceiling($M::log10($b))) |? {$_ -ge $a -and $_ -le $b}
}
f 1 10000000 12
PowerShellで単純に書けば
function f($a, $b, $s) {$a..$b |? {(iex ([char[]]"$_" -join "+")) -eq $s}}
f 1 100 12
だが、桁が増えると遅すぎるので、少し工夫すると、
$M = [Math]
function g($s, $n)
{
if ($n -eq 1) {return $s}
$d = $M::pow(10, $n - 1)
for ($i = $M::max(0, $s - 9 * ($n - 1)); $i -le $M::min(9, $s); $i++) {
g ($s - $i) ($n - 1) |% {$d * $i + $_}
}
}
function f($a, $b, $s)
{
g $s ($M::ceiling($M::log10($b))) |? {$_ -ge $a -and $_ -le $b}
}
f 1 10000000 12
924デフォルトの名無しさん
2019/11/04(月) 19:36:29.94ID:6jo2x8my 7桁まではまあまあだが8桁以上だと遅いので、Cで書き換えると9桁でも瞬時に終わった。
(出力をファイルにリダイレクトした場合)。Visual Studioでは動作するが、
ideone.comでは変なコンパイラエラーが発生する。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void g(int a, int b, int s, int n, int t, int x)
{
int d, i;
if (n == 0) {
if (t == s && x >= a && x <= b) printf("%d\n", x);
} else {
for (d = i = 1; i < n; i++) d *= 10;
for (i = max(0, (s - t) - 9 * (n - 1)); i <= min(9, s - t); i++) {
g(a, b, s, n - 1, t + i, d * i + x);
}
}
}
void f(int a, int b, int s)
{
g(a, b, s, ceil(log10(b)), 0, 0);
}
int main(void)
{
f(1, 1000000000, 12);
return 0;
}
(出力をファイルにリダイレクトした場合)。Visual Studioでは動作するが、
ideone.comでは変なコンパイラエラーが発生する。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void g(int a, int b, int s, int n, int t, int x)
{
int d, i;
if (n == 0) {
if (t == s && x >= a && x <= b) printf("%d\n", x);
} else {
for (d = i = 1; i < n; i++) d *= 10;
for (i = max(0, (s - t) - 9 * (n - 1)); i <= min(9, s - t); i++) {
g(a, b, s, n - 1, t + i, d * i + x);
}
}
}
void f(int a, int b, int s)
{
g(a, b, s, ceil(log10(b)), 0, 0);
}
int main(void)
{
f(1, 1000000000, 12);
return 0;
}
925デフォルトの名無しさん
2019/11/05(火) 01:53:14.53ID:gnRgB6kn926デフォルトの名無しさん
2019/11/05(火) 20:14:32.31ID:e+hxAdfR お題:グラフの最長距離探索プログラムを作りなさい。分からなければダイクストラの最短距離探索プログラムを改造して作りなさい。
927デフォルトの名無しさん
2019/11/05(火) 20:40:24.45ID:3L71zPwH928デフォルトの名無しさん
2019/11/05(火) 21:02:19.16ID:3L71zPwH 枝じゃなかった。支点だった。
929デフォルトの名無しさん
2019/11/05(火) 22:48:36.11ID:4YhU7TUN >>917
Common Lisp
(defun f (m n s)
(print (loop for i from m to n
if (= s (loop for (j k) = (multiple-value-list (floor i 10)) then (multiple-value-list (floor j 10))
sum k
until (zerop j)))
collect i)))
(f 1 100 12)
Common Lisp
(defun f (m n s)
(print (loop for i from m to n
if (= s (loop for (j k) = (multiple-value-list (floor i 10)) then (multiple-value-list (floor j 10))
sum k
until (zerop j)))
collect i)))
(f 1 100 12)
930デフォルトの名無しさん
2019/11/07(木) 19:42:24.48ID:wJeAdMrJ931デフォルトの名無しさん
2019/11/07(木) 22:47:28.91ID:Iq2Mem9/ >>924を読み返してみたら、1変数減らしてすっきりさせられることに気付いた。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void g(int a, int b, int r, int n, int x)
{
int d, i;
if (n == 0) {
if (r == 0 && x >= a && x <= b) printf("%d\n", x);
} else {
d = pow(10, n - 1);
for (i = max(0, r - 9 * (n - 1)); i <= min(9, r); i++) {
g(a, b, r - i, n - 1, d * i + x);
}
}
}
void f(int a, int b, int s)
{
g(a, b, s, ceil(log10(b)), 0);
}
int main(void)
{
f(1, 1000000000, 12);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void g(int a, int b, int r, int n, int x)
{
int d, i;
if (n == 0) {
if (r == 0 && x >= a && x <= b) printf("%d\n", x);
} else {
d = pow(10, n - 1);
for (i = max(0, r - 9 * (n - 1)); i <= min(9, r); i++) {
g(a, b, r - i, n - 1, d * i + x);
}
}
}
void f(int a, int b, int s)
{
g(a, b, s, ceil(log10(b)), 0);
}
int main(void)
{
f(1, 1000000000, 12);
return 0;
}
932デフォルトの名無しさん
2019/11/10(日) 21:37:46.78ID:OK7x/7YO 文字コードがシフトJISでもUnicodeでも3つ以上の連番となる文字列(最長一致)を、
コード範囲とともにすべて表示せよ。例えば、それらのうちの1つに関する表示は、
824F..8258
FF10..FF19
01234566789
となる。なお、シフトJISには機種依存文字を含んで構わない。
コード範囲とともにすべて表示せよ。例えば、それらのうちの1つに関する表示は、
824F..8258
FF10..FF19
01234566789
となる。なお、シフトJISには機種依存文字を含んで構わない。
933デフォルトの名無しさん
2019/11/10(日) 21:57:20.43ID:uvNl/eaa >>932
何を以って同じ文字とみなすのか定義しろ
何を以って同じ文字とみなすのか定義しろ
934デフォルトの名無しさん
2019/11/10(日) 22:09:53.56ID:OK7x/7YO >>933
それも機種依存で構わない。規格上の厳密さにこだわる必要はない。
それも機種依存で構わない。規格上の厳密さにこだわる必要はない。
935デフォルトの名無しさん
2019/11/10(日) 23:26:27.72ID:EkgZPBq1936デフォルトの名無しさん
2019/11/11(月) 00:44:57.23ID:VmjibYtT バイナリファイルの高速コンペア
937デフォルトの名無しさん
2019/11/11(月) 18:33:43.09ID:KK646YuM >>936
メモリに二つとも呼んでfor回す。意外は難しい気がする。
メモリに二つとも呼んでfor回す。意外は難しい気がする。
938デフォルトの名無しさん
2019/11/11(月) 19:03:14.97ID:KK646YuM939デフォルトの名無しさん
2019/11/11(月) 22:23:08.18ID:ySONYK72940デフォルトの名無しさん
2019/11/11(月) 22:37:18.90ID:hxYpUSvR >>935
正解。Windowsには機種依存文字
8754..875D
2160..2169
TUVWXYZ[\]
などもあるが、機種依存文字を含んでも構わないという出題だったので、
含まなくてもOK。
正解。Windowsには機種依存文字
8754..875D
2160..2169
TUVWXYZ[\]
などもあるが、機種依存文字を含んでも構わないという出題だったので、
含まなくてもOK。
941デフォルトの名無しさん
2019/11/12(火) 05:31:26.51ID:oeG9wEYf942デフォルトの名無しさん
2019/11/12(火) 12:11:13.05ID:BJKXTHw+ >>940 Java
https://ideone.com/611DD5
>>935からCharasetをShift-JISからx-SJIS_0213に変えただけ (Windowsだとx-MS932_0213のほう?)
Shift-JISだと古いやつなんやな
https://ideone.com/611DD5
>>935からCharasetをShift-JISからx-SJIS_0213に変えただけ (Windowsだとx-MS932_0213のほう?)
Shift-JISだと古いやつなんやな
943デフォルトの名無しさん
2019/11/12(火) 21:37:48.42ID:+gLjUv3x >>941
処理データ量が少なく計算効率を考慮しなくて良いなら、Rで簡潔に書ける。
https://ideone.com/cRvth9
効率が求められるなら、Cで二分探索の変形版だな。
https://ideone.com/FXQQjq
処理データ量が少なく計算効率を考慮しなくて良いなら、Rで簡潔に書ける。
https://ideone.com/cRvth9
効率が求められるなら、Cで二分探索の変形版だな。
https://ideone.com/FXQQjq
944デフォルトの名無しさん
2019/11/12(火) 22:38:04.89ID:SyoIDDRx windowsのロングパス対応の重複ファイル検索するコードない?
945デフォルトの名無しさん
2019/11/13(水) 04:07:44.81ID:eXHRJefh >>941 Pharo/Squeak Smalltalk
| fn |
fn := [:m |
| table |
table := #(98 100 198 200 250 298).
table detectMin: [:x | (x - m) abs]
].
fn value: 50. "=> 98 "
fn value: 195. "=> 198 "
| fn |
fn := [:m |
| table |
table := #(98 100 198 200 250 298).
table detectMin: [:x | (x - m) abs]
].
fn value: 50. "=> 98 "
fn value: 195. "=> 198 "
946デフォルトの名無しさん
2019/11/13(水) 14:07:45.70ID:9sxFrKBI947デフォルトの名無しさん
2019/11/13(水) 15:30:27.12ID:EqcpRCSG どう考えても線形探索の方が簡単で速い
1回だけなら
1回だけなら
948デフォルトの名無しさん
2019/11/13(水) 18:24:57.67ID:utJBi2wY >>941 Lua
function f(a, x)
local res = a[1]
for i = 2, #a do
if math.abs(res - x) > math.abs(a[i] - x) then
res = a[i]
end
end
return res
end
function f(a, x)
local res = a[1]
for i = 2, #a do
if math.abs(res - x) > math.abs(a[i] - x) then
res = a[i]
end
end
return res
end
950デフォルトの名無しさん
2019/11/13(水) 20:28:42.98ID:6mLuLK4e952デフォルトの名無しさん
2019/11/13(水) 20:48:13.08ID:CMaH4qd1 >>941
C++ならSTLのequal_rangeを使えば、二分探索のコードを自前で書かずに済む。
https://ideone.com/KJ134u
この例の条件でしか判定しないなら、5つの定数値との比較にするのが一番簡単で
速そうだな。
https://ideone.com/ef553N
C++ならSTLのequal_rangeを使えば、二分探索のコードを自前で書かずに済む。
https://ideone.com/KJ134u
この例の条件でしか判定しないなら、5つの定数値との比較にするのが一番簡単で
速そうだな。
https://ideone.com/ef553N
953デフォルトの名無しさん
2019/11/13(水) 21:39:03.09ID:Fqkv69gY なんで順番に5回も比較してんの?
954デフォルトの名無しさん
2019/11/13(水) 21:47:59.14ID:kE3A4AyF 10回比較するわけにはいかないからでしょ
955デフォルトの名無しさん
2019/11/13(水) 21:53:11.46ID:RzCRvdkP まずは199との比較では?
あとは範囲を絞ったテーブルとか
int全てをカバーするテーブルも
intが32bitな64bit環境なら一応は可能
あとは範囲を絞ったテーブルとか
int全てをカバーするテーブルも
intが32bitな64bit環境なら一応は可能
956蟻人間 ◆T6xkBnTXz7B0
2019/11/13(水) 22:09:59.79ID:SHPlbPC2 お題: 自動塗り絵。
白地に黒い線で図形が描かれているモノクロ画像が与えられる。
白い領域をそれぞれ適当な単色で塗りつぶせ。可能ならOpenCVを使ってもいい。
白地に黒い線で図形が描かれているモノクロ画像が与えられる。
白い領域をそれぞれ適当な単色で塗りつぶせ。可能ならOpenCVを使ってもいい。
957デフォルトの名無しさん
2019/11/13(水) 22:51:59.05ID:RzCRvdkP ペイントブラシ + スクリプト
で出来そう
で出来そう
958デフォルトの名無しさん
2019/11/13(水) 23:03:48.70ID:CMaH4qd1 >>955
「一番速い」ではなく「一番簡単で速い」だからね。可読性とかバグの
混入しにくさとかも考えると、順番に5回比較するのが一番良いだろ。
特に https://mevius.2ch.net/test/read.cgi/tech/1573214616/3 への
回答としては、最も適している。
「一番速い」ではなく「一番簡単で速い」だからね。可読性とかバグの
混入しにくさとかも考えると、順番に5回比較するのが一番良いだろ。
特に https://mevius.2ch.net/test/read.cgi/tech/1573214616/3 への
回答としては、最も適している。
959デフォルトの名無しさん
2019/11/13(水) 23:40:49.81ID:RzCRvdkP 一番速くもないし一番簡単でもない
一番「簡単で速い」?
簡単と速いは相反するので一番なんて無い
一番「簡単で速い」?
簡単と速いは相反するので一番なんて無い
960デフォルトの名無しさん
2019/11/13(水) 23:42:10.65ID:RzCRvdkP 凡人が安易に「一番」とか言わない方が良いよ
961デフォルトの名無しさん
2019/11/14(木) 01:06:49.29ID:4AhPUV/Y 俺が一番
962デフォルトの名無しさん
2019/11/14(木) 06:15:22.98ID:BnXMw1SX >>941 Io
f:=method(a,x,
a map(v,list((v-x)abs,v))min last
)
d:=list(98,100,198,200,298)
f(d,120) println
実行結果
100
f:=method(a,x,
a map(v,list((v-x)abs,v))min last
)
d:=list(98,100,198,200,298)
f(d,120) println
実行結果
100
963デフォルトの名無しさん
2019/11/14(木) 09:31:40.70ID:baSi3t2K 一番簡単で速いってなんだよ
一番簡単かつ一番速いなら一番速いって言えばいいだけだろ
ってC++の人かよ
一番簡単かつ一番速いなら一番速いって言えばいいだけだろ
ってC++の人かよ
964デフォルトの名無しさん
2019/11/14(木) 12:32:18.21ID:WVE0j82D 一番に過剰反応してるみなさんwww
965デフォルトの名無しさん
2019/11/14(木) 13:14:51.59ID:/NpdgKVA 一番とか最も適しているとか
頭が悪いやつが良く言うセリフ
頭が悪いやつが良く言うセリフ
966デフォルトの名無しさん
2019/11/14(木) 13:27:39.39ID:isT1FYJS それな
あと「頭悪いやつがよく言う」ってのも頭悪いやつよく言うセリフだわ
あと「頭悪いやつがよく言う」ってのも頭悪いやつよく言うセリフだわ
967デフォルトの名無しさん
2019/11/14(木) 15:14:06.76ID:1CVvHcAw968デフォルトの名無しさん
2019/11/14(木) 16:23:41.28ID:bZ2yXVXr969デフォルトの名無しさん
2019/11/14(木) 22:16:17.11ID:ya/1xYDt >>963
「一番簡単で速い」は「一番簡単」かつ「速い」という意味だよ。
一番簡単なコードを書いてみて充分に速ければ、さらに手を加える必要はないってこと。
昨今はCPUが速いので、簡単なコードをささっと書いて終わりにできる場合が多いし、
Cを使うまでもなくRやPythonなどでも実用に耐える。処理条件が変わって速度に
不満が生じたときだけ、書き直せば良い。
「一番簡単で速い」は「一番簡単」かつ「速い」という意味だよ。
一番簡単なコードを書いてみて充分に速ければ、さらに手を加える必要はないってこと。
昨今はCPUが速いので、簡単なコードをささっと書いて終わりにできる場合が多いし、
Cを使うまでもなくRやPythonなどでも実用に耐える。処理条件が変わって速度に
不満が生じたときだけ、書き直せば良い。
970デフォルトの名無しさん
2019/11/14(木) 22:21:25.20ID:KjmBL3+S 配列をキャッシュに乗せるだけで早くなる
配列にするだけで早くなる
配列にするだけで早くなる
971デフォルトの名無しさん
2019/11/14(木) 23:43:50.36ID:ya/1xYDt972デフォルトの名無しさん
2019/11/15(金) 06:08:37.20ID:/dDy1LQy973デフォルトの名無しさん
2019/11/15(金) 06:11:01.44ID:/dDy1LQy 中途半端に最適化するくらいなら
意味通りをそのまま記述した方が良いよ
トリッキーなマクロとか使わないで普通にループでいいし
意味通りをそのまま記述した方が良いよ
トリッキーなマクロとか使わないで普通にループでいいし
974デフォルトの名無しさん
2019/11/15(金) 07:24:03.38ID:YlbiRAmO975デフォルトの名無しさん
2019/11/15(金) 08:39:52.88ID:zGnI3whh976デフォルトの名無しさん
2019/11/15(金) 08:46:57.30ID:pd2oXw5y お題はどれ?
977デフォルトの名無しさん
2019/11/15(金) 10:34:11.71ID:zGnI3whh978デフォルトの名無しさん
2019/11/15(金) 10:34:39.11ID:kGxI2dsU >>972
もっと簡単なのがあると言うなら提示すりゃいいだけ
もっと簡単なのがあると言うなら提示すりゃいいだけ
979デフォルトの名無しさん
2019/11/15(金) 10:37:36.49ID:Dg2kwGpJ そんなら一番簡単なんて言ったもん勝ちやんアホクサ
980デフォルトの名無しさん
2019/11/15(金) 11:19:40.93ID:y6ix6SXf >>979
どういうこと?
どういうこと?
981デフォルトの名無しさん
2019/11/15(金) 13:20:35.16ID:pd2oXw5y 発言者に証明責任がある
当たり前
当たり前
982デフォルトの名無しさん
2019/11/15(金) 13:22:00.36ID:pd2oXw5y 簡単じゃない部分は書いたけどね
983デフォルトの名無しさん
2019/11/15(金) 13:25:38.61ID:pd2oXw5y 本当に一番簡単だと思ってるなら
非常に頭が弱い
というしかない
非常に頭が弱い
というしかない
984デフォルトの名無しさん
2019/11/15(金) 16:04:20.43ID:y6ix6SXf 証明責任が
985デフォルトの名無しさん
2019/11/15(金) 18:45:17.65ID:YlbiRAmO986デフォルトの名無しさん
2019/11/15(金) 22:18:10.52ID:1XAUh39O987デフォルトの名無しさん
2019/11/16(土) 07:59:12.18ID:PKd8UO5d お前ちょっとしつこいよ
二人ともどっか行ってくれ
二人ともどっか行ってくれ
988デフォルトの名無しさん
2019/11/16(土) 09:38:56.12ID:R3eXoa4h お題: 標準入力から読み取った文字列に対して変換候補の単語を表示するスクリプトを作れ
変換候補は https://www.cs.cmu.edu/~rgs/alice-table.html のテキストを元にし、英文のみの対応とする
例:
in < on
out > ['on', 'once', 'one', 'only']
in < we
out > ['well', 'went', 'were']
変換候補は https://www.cs.cmu.edu/~rgs/alice-table.html のテキストを元にし、英文のみの対応とする
例:
in < on
out > ['on', 'once', 'one', 'only']
in < we
out > ['well', 'went', 'were']
989デフォルトの名無しさん
2019/11/16(土) 09:39:44.99ID:R3eXoa4h99010-11
2019/11/16(土) 11:43:03.30ID:nyexrMnj Mathematica
ビットテーブル使ったからいまいち
f[x_]:=Round[Exp[x*49/2^9]*10]+Mod[BitShiftRight[8518656,x],2]
f[Range[0,23]]
{10,11,12,13,15,16,18,20,22,24,27,30,33,36,39,43,47,51,56,62,68,75,82,91}
ビットテーブル使ったからいまいち
f[x_]:=Round[Exp[x*49/2^9]*10]+Mod[BitShiftRight[8518656,x],2]
f[Range[0,23]]
{10,11,12,13,15,16,18,20,22,24,27,30,33,36,39,43,47,51,56,62,68,75,82,91}
991デフォルトの名無しさん
2019/11/16(土) 13:01:44.00ID:9Ne+J8hx >>988-989 PowerShell
$Words = ([RegEx]"\w+").Matches((Invoke-WebRequest 'https://www.cs.cmu.edu/~rgs/alice-I.html').Content) | Select-Object -ExpandProperty 'Value' | Sort-Object -Unique
'on', 'we' | %{ "'$_' => ['$($Words -cmatch "^$_.*$" -join ''', ''')']" }
--
'on' => ['on', 'once', 'one', 'only']
'we' => ['well', 'went', 'were']
$Words = ([RegEx]"\w+").Matches((Invoke-WebRequest 'https://www.cs.cmu.edu/~rgs/alice-I.html').Content) | Select-Object -ExpandProperty 'Value' | Sort-Object -Unique
'on', 'we' | %{ "'$_' => ['$($Words -cmatch "^$_.*$" -join ''', ''')']" }
--
'on' => ['on', 'once', 'one', 'only']
'we' => ['well', 'went', 'were']
992蟻人間 ◆T6xkBnTXz7B0
2019/11/16(土) 14:12:37.63ID:wI2tFyzM そろそろ次スレ
993デフォルトの名無しさん
2019/11/16(土) 20:00:42.94ID:ycfnvugG994デフォルトの名無しさん
2019/11/16(土) 20:11:13.21ID:SjIOWxyj どうでもいい
匿名掲示板
匿名掲示板
995デフォルトの名無しさん
2019/11/16(土) 22:09:51.31ID:ByTTIV4m996デフォルトの名無しさん
2019/11/17(日) 09:01:36.94ID:xqEdXdr6997990
2019/11/17(日) 15:37:45.58ID:WMPUR+bY BitGet使うんだった(Mathematicaに慣れてないのばればれ)
(* 49/2^9 = 0.095703125 *)
f[x_]:=Round[Exp[x*0.095703125]*10]+BitGet[8518656,x]
もう少し頑張っても16ビット以内にビットテーブルは縮小出来ず…。
(* 785/2^13 = 0.0958251953125 *)
f[x_]:=Round[Exp[x*0.0958251953125]*10]+BitGet[130048,x]
(* 49/2^9 = 0.095703125 *)
f[x_]:=Round[Exp[x*0.095703125]*10]+BitGet[8518656,x]
もう少し頑張っても16ビット以内にビットテーブルは縮小出来ず…。
(* 785/2^13 = 0.0958251953125 *)
f[x_]:=Round[Exp[x*0.0958251953125]*10]+BitGet[130048,x]
998デフォルトの名無しさん
2019/11/21(木) 12:06:42.30ID:p+kY48sO999デフォルトの名無しさん
2019/11/21(木) 17:12:54.10ID:x85mexbT >>988-989 Squeak Smalltalk。関数で。
| contents words fn |
contents := (HTTPClient httpGet: 'https://www.cs.cmu.edu/~rgs/alice-I.html') contents.
words := (contents replaceAll: Character lf with: Character space; asTextFromHtml) asString subStrings: ' !"''()*,-.:;?`'.
words := words asSet asSortedArray.
fn := [:in | words select: [:word | word beginsWith: in]].
fn value: 'on'. "=> #('on' 'once' 'one' 'only') "
fn value: 'we'. "=> #('well' 'went' 'were') "
"for Pharo => http://ws.stfx.eu/DK48GF5ZH8SF "
| contents words fn |
contents := (HTTPClient httpGet: 'https://www.cs.cmu.edu/~rgs/alice-I.html') contents.
words := (contents replaceAll: Character lf with: Character space; asTextFromHtml) asString subStrings: ' !"''()*,-.:;?`'.
words := words asSet asSortedArray.
fn := [:in | words select: [:word | word beginsWith: in]].
fn value: 'on'. "=> #('on' 'once' 'one' 'only') "
fn value: 'we'. "=> #('well' 'went' 'were') "
"for Pharo => http://ws.stfx.eu/DK48GF5ZH8SF "
1000蟻人間 ◆T6xkBnTXz7B0
2019/11/21(木) 20:01:07.49ID:KAM+noJg はかい
こうせん
せんもんがっこう
こうせん
せんもんがっこう
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 116日 0時間 21分 10秒
新しいスレッドを立ててください。
life time: 116日 0時間 21分 10秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
