プログラミングのお題スレ Part15

レス数が1000を超えています。これ以上書き込みはできません。
2019/07/28(日) 19:39:57.54ID:832c/ukY
プログラミングのお題スレです。

【出題と回答例】
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/
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)が分かっている時、スコアの期待値を求めよ
2019/07/29(月) 11:14:17.89ID:3vvajVS9
>>4
https://ideone.com/GgQh2t
C++,モンテカルロしてみた。
値がちょっと怖い値になったので、バグ報告歓迎。
2019/07/29(月) 11:34:20.96ID:3vvajVS9
https://ideone.com/geZ4qP
>>5が不安だったので、出力変えてみたけど、最大値で500近くになるんだな。
何かビビった。
2019/07/29(月) 11:49:50.47ID:3vvajVS9
サイコロの偏りをもっと明確にしたいなら、乱数エンジンを複数持つか、ランダムデバイスそのもので実行する。
ランダムデバイスは遅いことになってるのでMTに投げるんだけど。
2019/07/29(月) 11:55:28.48ID:3vvajVS9
一様乱数のサイコロは、現実では職人が作ったサイコロですなあ。
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)).
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
久々にこの板きたけど、宿題スレってなくなったんだね
2019/07/30(火) 16:51:52.79ID:gia580F5
解空間は、サイズ(p+q+r)×(p+q+r)の整数行列の集合になる。
結合の手の個数は有限だから、解行列の成分は上限がある。
よって行列の各成分についてしらみつぶし探索が可能。

自分自身とは結合しないので、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
2019/07/30(火) 17:10:40.80ID:CNgKzCU7
>>14
基地外粘着uyによって潰された
2019/07/30(火) 19:44:50.09ID:RfvVlMN8
>>13
良い数式が立てられないのでモンテカルロに酔っているオレ・・・。
2019/07/30(火) 20:12:47.58ID:3dZzemsO
>>9
複雑すぎます
非環状アルカン(CnH2n+2)の構造異性体を列挙せよ、という簡略化したお題を提案します
2019/07/30(火) 20:13:36.62ID:3dZzemsO
>>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
>>23 Perl5

$a = 1 + 1;
print ~$a%10;

実行結果
$ perl 15_23.pl
3

※64bit整数版で実行してね
2019/07/31(水) 00:12:45.83ID:w173sz60
>>23
perl5

print ("1", "+", "1")
1+1
print $_ =()= ("1", "+", "1")
3
26デフォルトの名無しさん
垢版 |
2019/07/31(水) 04:39:05.16ID:BcGPMjSP
>>23
perl


1+1;
print "3\n"
2019/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"
2019/07/31(水) 09:55:03.07ID:w173sz60
>>23
perl5

print qw(1 + 1)
1+1
print eval q(1 + 1)
2
print $_ =()= qw(1 + 1)
3
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
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)
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
2019/07/31(水) 20:22:09.77ID:AESVjm16
自分でスタックするか再起にして自動で積ませるか、といったところか。
2019/07/31(水) 21:44:23.62ID:CaRsLsI2
>>32 Java
https://ideone.com/dIdH1J
2019/07/31(水) 22:14:16.43ID:w173sz60
>>32
perl5
http://ideone.com/X5OIjN
2019/07/31(水) 22:19:24.27ID:w173sz60
ideone バグっているのか?
STDIN の1行目空だと
ちゃんと標準入力としてプログラムに伝わっているけど
リンク先の stdin 枠の中だと省略されているように見える

stdout の 0 はその空を受け取ったもの
2019/07/31(水) 22:42:26.48ID:w173sz60
twitterやっていたようなので
そこにバグフィックス要請とテストケース画像貼っておいた
たぶんそのうち直るでしょう
2019/07/31(水) 23:32:10.18ID:M5c7ILzZ
問題
n桁のヒットアンドブローのソルバーを作る。
39デフォルトの名無しさん
垢版 |
2019/07/31(水) 23:34:51.48ID:BcGPMjSP
君の言っていることの意味がよくわからない。
2019/08/01(木) 00:15:32.73ID:i4UPQl8k
>>37
GJ
2019/08/01(木) 15:40:09.21ID:eeSbVWum
>>38
大分前に作ったけど、コード紛失した。
アルゴリズムも忘れた。

ガーン。
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
2019/08/01(木) 16:10:15.37ID:WaJjQk0q
>>42
wolfram
Simplify[ x-y, {5000000 == (a+x)*1.08,5000000 == (a+y)*1.1} ]
84175.1
2019/08/01(木) 16:16:06.40ID:WaJjQk0q
切り上げか
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
2019/08/01(木) 21:02:36.17ID:9Ke7npq5
>>45
ちょっと考えたらceiling(n/59.4)だったw
2019/08/02(金) 20:14:36.58ID:fXsI78QL
お題: 数字が与えられるので、その数字を元の数より大きくなるように再構築せよ
大きくできなければ元の数字をそのまま出力せよ

例:
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
>>48
https://ideone.com/fyfMQH
C++。ご期待通り(?)にパーミテーション回してみたよ。
重いお。
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)))))
2019/08/03(土) 10:27:27.22ID:9AEx1UEu
なんて早いんだ
2019/08/03(土) 11:19:47.14ID:4CYzcJxv
「大きくできなければ元の数字をそのまま出力せよ」という条件が
ことごとく無視されててワロタ

あと、「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を使ってみた
2019/08/03(土) 11:43:50.21ID:xpWLAw2C
>>57 ごめんなさい
print "$n " if $n > $v;

print "$n " if $n >= $v;

じゃないと「大きくできなければ元の数字をそのまま出力せよ」を満たさなかった…orz
2019/08/03(土) 11:49:41.56ID:xpWLAw2C
>>58 そうすると逆に
「元の数「より大きくなる」ように再構築せよ」
については、元の数値が余計に出力されるな…ゴメンねもう一工夫要るわ
それにiteratorである必要ないわ
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で解けた
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} "
2019/08/03(土) 19:53:41.57ID:0ts56itm
>>48だけど、>>56の要件を見落としていたので入れてみたよ。
https://ideone.com/h2KrQu
C++。
2019/08/04(日) 03:52:38.60ID:vnZdN6SP
>>56で指摘したのに誰も反応してくれないので自分で書く
>>54は、「133」と入れると[313,331,313,331]みたいに結果がダブる
2019/08/04(日) 04:17:02.39ID:vnZdN6SP
>>62
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}
2019/08/04(日) 11:42:59.33ID:1+0Vj0jh
>>63
オレのPerl5の>>60も桁に重複があると出力はダブるよ。
ダブった出力で良いかあるいは1つに削減して出力するか
仕様は不定なので、ダブる可能性があってもそのまま出した。
ダブらせず1つだけ出力すにはsortしてuniqすればいいんだけど。
@b = grep {$_ > $v} map{join '', @$_} permu [], @a;

%h = map{$_ => 1} sort grep {$_ > $v} map{join '', @$_} permu [], @a;
@b = keys %h;
2019/08/04(日) 13:27:01.79ID:FYuOH6vI
https://ideone.com/mBo1rR
C++.
>>63のダブって表示はならないですね。
文字列だと、自分はいいけど、数字に限定するのが面倒なので、大きな数で処理してます。
文字を許容するんであればお題で書いておけばそのようになるんじゃないですかね??
2019/08/04(日) 13:29:31.62ID:FYuOH6vI
あ、そうだった。文字列だと自分より大きいを表現するのがめんどくさいのでした。
2019/08/05(月) 21:32:05.80ID:OFOHGnJp
>>48
https://ideone.com/1mtrVl
C++。暇だったので、文字列版作った。
でかい数のデバッグが大変だから手抜きだ。
ご査収ください。。。
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
2019/08/06(火) 14:56:22.80ID:1YPxJa8a
お題@閑話休題。
https://ja.wikipedia.org/wiki/AKS素数判定法
AKSの実装。Prime is in P.
自分は挫折しました。数学解らない。

残骸:https://ideone.com/9e7Tyn
2019/08/06(火) 14:57:44.83ID:1YPxJa8a
>>70
そういえば、ソートする必要ないね。
書いてるときは保証できなかったから思いつきもしなかった。
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
2019/08/06(火) 20:18:34.06ID:1YPxJa8a
>>73
要素粛清しながら見た目がそろっているというギャグかいな。
2019/08/06(火) 20:54:47.97ID:1YPxJa8a
https://ideone.com/hhy72i
C++。よく生き残った我が精鋭たちよ。
ところで・・・。
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) "
2019/08/08(木) 00:35:30.37ID:X/CTiqlR
>>73
しばらくお題がないとおちつかないな
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]
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
2019/08/09(金) 00:53:52.15ID:ZZ2ybqZz
お題: 太陽系の各天体の位置を物理シミュレーションし、64日後の地球の位置を求めよ。
2019/08/09(金) 01:17:32.06ID:JH0KcGUq
俺たちって計算能力でコペルニクスを超えられると思う? NASAのデータがあるから昔よりも楽だと思うけど。
2019/08/09(金) 01:27:37.54ID:F1quTbHl
>>73 Perl5、 >>80 よりこっちの方が若干スマート

$n = -inf;
@a = qw{0 3 1 4 1 5 9 26 53 58 97 93 238};
@b = grep {$n < $_ and ($n = $_), 1} @a;
print "@b\n";


実行結果
~ $ perl 15_73.pl
0 3 4 5 9 26 53 58 97 238
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プログラムも附属しています。
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を拾わない
何というカオス
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;
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
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
2019/08/11(日) 01:44:41.14ID:GTeyRs5o
>>91
perl5
http://ideone.com/vj47th
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
2019/08/11(日) 06:11:31.27ID:0wbGlMwh
typo

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
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
2019/08/11(日) 13:23:49.66ID:NLZMdOh3
お題: 数独を素早く解くプログラム(ソルバー)。
99デフォルトの名無しさん
垢版 |
2019/08/11(日) 16:53:20.83ID:RYQKURZ1
昔々Cで数独解くやつ普通に作ったことあるけど普通に作っても人間の感覚では一瞬にして答えが出ちゃうんだよな。ほとんどEnterキー押したらすぐ出る感じ。
そしてこれといって他にアルゴリズムは思い浮かばない。(誰もが思い付くであろう再起でマスに入れられる数を順番に入れてく方式ね)。

これ以上に「素早く」やる方法なんてあるんだろうか?
2019/08/11(日) 16:59:48.87ID:z7uw92+V
>>91
https://ideone.com/1JCuiv
C++。一応例題は解けたが妖しい処理になった。
2019/08/11(日) 17:06:50.80ID:z7uw92+V
>>91
https://ideone.com/oSQNZM
C++。これでどうじゃ。
バケットソートでいいじゃないか。プンプン。
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++。
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;
}
しつこいけど、これ以上は無理ってくらい詰めた。
2019/08/11(日) 17:25:40.33ID:z7uw92+V
どうでもいいのですけど、MITライセンス。知ってますね。
2019/08/11(日) 17:33:34.70ID:NLZMdOh3
名無しにライセンス
2019/08/11(日) 17:43:12.84ID:z7uw92+V
https://ideone.com/Cu9Dix
C++。大オチ。
駄文書きすぎた。
107デフォルトの名無しさん
垢版 |
2019/08/11(日) 18:40:15.26ID:2JPwQqrg
prologのコード見せてよ
2019/08/11(日) 18:56:28.74ID:NLZMdOh3
お題: 論文「数独パズルの難易度判定」(大阪工業大学)を読んで、数独の難易度を判定するプログラムを作れ。
2019/08/11(日) 19:37:12.10ID:EWNjTlvC
>>108
吸う毒難易度判定
初期値の与えられているマスが22以下:難問
22以上:簡単
2019/08/11(日) 19:48:53.81ID:NLZMdOh3
論文無視かよ
2019/08/11(日) 19:52:40.36ID:GTeyRs5o
お題出す前にその論文を簡約してよ
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 "
113デフォルトの名無しさん
垢版 |
2019/08/12(月) 05:25:28.42ID:+GFDKMmL
>>91
Kotlin
https://paiza.io/projects/7gZ5wu2acBho-erGVG_X6Q
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
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]
116デフォルトの名無しさん
垢版 |
2019/08/14(水) 01:39:36.14ID:G04CimIq
>>91
VB
https://paiza.io/projects/DJNbrsQFWtBDXhtNjmJ9xQ
117デフォルトの名無しさん
垢版 |
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]
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
2019/08/16(金) 00:38:41.91ID:eRShYMGh
お題: 任意の2桁の自然数の各桁を、1桁になるまで掛け算する回数の最大回数とその数を示せ

15なら1x5=5と1回
93なら9x3=27, 2x7=14, 1x4=3と3回
2019/08/16(金) 01:31:17.83ID:eRShYMGh
>>120
最後1x4=3じゃなくて1x4=4だった
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)
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
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} "
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
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になる.
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になる
128デフォルトの名無しさん
垢版 |
2019/08/16(金) 11:40:17.74ID:FoYt1ZXR
実用上、意味のないことは寝言という。
2019/08/16(金) 11:52:49.37ID:38QTrPdc
グッスリお休み。
2019/08/16(金) 17:08:53.11ID:/mNc+3sP
>>120
https://ideone.com/uOlN2E
C++. 暇だったので基数いじれるようにした。
ただし、デバッグはしてない。
2019/08/16(金) 19:41:08.88ID:4vR5Al7i
2x7x7x7x7x7x7x8x8x8x8x8x8x9x9=4996238671872
この段階で、掛け算14回じゃなくて1回になるの?
132デフォルトの名無しさん
垢版 |
2019/08/16(金) 21:11:10.70ID:UOmTAtC9
元のお題は2桁の自然数なのでそれよりも桁が多いならその場合のルールも決めないとダメだろうな。
2019/08/16(金) 22:49:37.86ID:WXGx/ZZ4
> 2x7x7x7x7x7x7x8x8x8x8x8x8x9x9=4996238671872
を1回としても14回としても解き方はたいして変わらんからどっちでもいいと思う
とりあえず回答例見たら1回としてるみたいだから1回の方でいいんじゃね
2019/08/17(土) 05:49:01.88ID:He41kTu9
>>120
common lisp
https://pastebin.com/ZcaYiA3N
任意の自然数に拡張した

split-num を実装してて思った
perl の数字と文字を自由に行き来できる cool型マジcool
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)
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になる
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)}.
2019/08/17(土) 16:18:33.55ID:RHoMoFJP
>>137
ダンゴムシは初手でどこに向いてるの?北?Y+?X+?
2019/08/17(土) 16:19:06.00ID:hkO+8710
ヒント: 最初、スタートとゴールを囲むように壁を仮設する。ぶつからない壁は要らない。
2019/08/17(土) 16:20:08.58ID:hkO+8710
ダンゴムシはx軸方向です。y軸は数学と同じ上向きを仮定してます。
2019/08/17(土) 17:21:32.91ID:RHoMoFJP
Y+がビジュアライズして上になるかはビジュアライザーの挙動次第なのでいいのだけど。
最初はX+向いてるのね。承知。
2019/08/17(土) 17:25:39.14ID:RHoMoFJP
あ、もう一つあるんだ。
最初にダンゴムシが壁にぶつかったときは右と左どっち優先?

////

@#
////
の時。
方向がX+の時に左へターンしたら無限ループする。
逆に、方向がY+の時右にターンしたら無限ループする。

どや?
143デフォルトの名無しさん
垢版 |
2019/08/17(土) 17:28:20.45ID:uIV5R7Aj
> ただし、ダンゴムシは最初は右向きを向いていて、最初にぶつかったら左に曲がるものとする。
2019/08/17(土) 17:29:33.02ID:wzQeNn8E
>>142
>90度曲がって目の前にすぐに壁がある場合は同じ方へもう90度曲がるものとする。
2019/08/17(土) 17:29:46.66ID:RHoMoFJP
すみません。見落としていました。
大変申し訳ありません。
2019/08/17(土) 19:06:19.57ID:c+Xct49t
クソコテの相手すんなよ
2019/08/17(土) 20:39:30.65ID:hkO+8710
世界はクソにあふれている! 何てこった! この状況を! この状況を変えるためには、クソをせずに生きれる仕組みを! 皆様と一緒にクソをせずに生きれる仕組みを、実現して! 行きましょう!
2019/08/17(土) 23:18:56.65ID:+079Z1et
そこでファナモの出番なわけですよ
2019/08/17(土) 23:52:46.77ID:9or86GZG
それよりも交替性転換反応とやらが本当に生存確率を高めるのか
右にばかり曲がりたがる逃亡犯と左にしか曲がれない共産党員を例に
シミュレーションを繰り返すプログラムを書いて?(゚∀゚)
2019/08/18(日) 00:30:12.24ID:Onid3Fuw
FPSのレレレ撃ちでしょ
ゲームで実験結果がでているからYoutubeにGo
2019/08/18(日) 01:00:00.23ID:C9/yeHaG
あなた達は、実は自分で思っているほど
ソフトウエアの開発が得意ではないということに
まだ気がついてすら至っていない
2019/08/18(日) 01:50:38.18ID:f2ZPM7Xh
>>151
そうだよね。ソフトクリーム作るのって大変だね。ちなみに英語ではジェラートだからね。
2019/08/18(日) 02:07:00.19ID:4oEGaRbg
>>151
君は、実は自分で思っているほど日本語が得意ではないということにまだ気づいていない。
2019/08/18(日) 02:25:43.87ID:zcvAoSag
そう来ると思っていました。
2019/08/18(日) 16:17:40.63ID:YNXq+wty
>>137
https://ideone.com/6yBcTi
C++。多分できた。
O(1)かも。
2019/08/18(日) 16:41:42.29ID:YNXq+wty
一番だよ〜。ほめてほめて〜〜!!
2019/08/18(日) 17:02:53.87ID:MNRPGL9Z
乙。
2019/08/18(日) 17:05:38.20ID:Onid3Fuw
O(1)だよ
2019/08/18(日) 17:21:04.50ID:YNXq+wty
やっほーい。
2019/08/18(日) 17:59:15.27ID:f2ZPM7Xh
スタート地点に壁を作ってるみたい。アルゴリズムの詰めが甘いようだ。
2019/08/18(日) 18:37:31.03ID:YNXq+wty
>>160
表示の問題です。では済まないかい?
場所は保持してるよ?
2019/08/18(日) 18:38:29.32ID:Y3okjmnX
>>137 Java
https://ideone.com/oytRaT
2019/08/18(日) 19:10:36.63ID:f2ZPM7Xh
>>162
正解。
2019/08/18(日) 19:33:02.90ID:f2ZPM7Xh
お題: 壁で囲まれた何もない有限の部屋(面積5m^3前後)の中に、四方向に距離センサーが付いた、丸い形のお掃除ロボット(直径20cm)がある。
各距離センサーは、ロボットからその方向にある障害物までの距離を常に教えてくれる。
ロボットはその場で右または左に5度単位で自転するか、もしくは前方向に5cm単位で前進できる。
部屋全体のおおよその形がわかるまで、ロボットを動かしなさい。

例) 正方形の部屋
例) 正三角形の部屋
例) 凹の形の部屋
2019/08/18(日) 19:46:24.23ID:f2ZPM7Xh
直径20cmが入り込めない隙間は無視、もしくは壁と見なす。
スクリーンショットか動画を作れたら、30点加点する。
2019/08/18(日) 19:59:22.35ID:Y3okjmnX
面積なのに^3とはこれ如何に
2019/08/18(日) 20:17:13.38ID:OH7aQxbJ
>>164 >>166
訂正。m^2です。

参考資料:直線と線分の当たり判定
https://spphire9.wordpress.com/2013/01/14/直線と線分の当たり判定/
2019/08/19(月) 11:34:00.91ID:icNxZHqv
>>164
部屋の壁の構成が凹を基本としたヒルベルト曲線だったら「おおよその形」はそのロボットのAIは何と答えればいいの?
ttps://cdn-ak.f.st-hatena.com/images/fotolife/o/obelisk2/20161224/20161224022849.png
2019/08/19(月) 11:46:10.65ID:icNxZHqv
もしくは、「壁」とは何か
2019/08/19(月) 12:00:44.91ID:78Wz1qhX
>>160
一晩かんがえてみたんだけどね、ゆる〜くね。
スタートに壁作るなとは書いてないよね??
2019/08/19(月) 12:36:53.71ID:ChF0jSyn
4個目のスタート地点の壁を許しても、3個目の答えが間違えてるやん?
[-1,1]の壁を1回透過しないとゴールにたどり着けないやん?

まあ [*いしのなかにいる*] は許されないと思うけどw
2019/08/19(月) 12:50:21.54ID:78Wz1qhX
>>171
あぁ、なるほど、先において起動させる前提なのか。
オレ、動的にターン制で考えてたわ。
2019/08/19(月) 13:04:09.25ID:ChF0jSyn
動的ターン制って考えは思いつかんかった
その考えなら>>155でも問題ないな
2019/08/19(月) 13:05:56.48ID:78Wz1qhX
握手(非強制)
2019/08/19(月) 13:45:26.16ID:5pda5jNo
部屋の形を表すビットマップ画像、もしくは一個以上の多角形でいいよ。
2019/08/19(月) 13:49:12.41ID:5pda5jNo
誤差は気にしない、気にしない。
2019/08/19(月) 13:53:20.88ID:5pda5jNo
>>173
壁をいつ置くかの記述がなかった、設問の不備ということで、正解、にしときます。すみません。
2019/08/19(月) 21:12:29.11ID:78Wz1qhX
及第点!
2019/08/19(月) 21:48:51.89ID:KFTDhNgP
コテのくせに偉そうだな
180デフォルトの名無しさん
垢版 |
2019/08/20(火) 03:10:44.70ID:p19J/GFP
アスペばっかやんけこのスレ
2019/08/23(金) 16:30:48.96ID:GCcQKmFF
>>32
perl5
http://ideone.com/1qwl1U

ずいぶん前のお題だが面白い回答ができたので再提出
再帰する正規表現に perl-code 内蔵の正規表現
たぶんウルトラレア
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++; }
保持してる最大値でもう一回振るかどうか決めちゃってないかい?
2019/08/27(火) 20:29:01.48ID:ZWZUVJ+Q
>>182
振ったダイスが閾値超えてたら次の回を一回プラスしてる。
閾値C以上ならという判断。
2019/08/27(火) 20:38:02.13ID:ZWZUVJ+Q
あ、勘違いしてた。ちょっと待ってて。
2019/08/27(火) 20:41:11.53ID:ZWZUVJ+Q
>>4
https://ideone.com/1zA9kL
C++。フォークして修正してみた。これでいいかなぁ。
2019/08/27(火) 21:01:10.99ID://c3Bn/y
俺のとあってるし多分いいんじゃね?わからんが
でも>>5-6の時点で出題者からの突っ込みがないのが気になる
出題者出てきてー
2019/08/27(火) 21:06:40.25ID:ZWZUVJ+Q
https://ideone.com/XIuQ53
しつこいけど、変数名のかぶりが気持ち悪かったので書き直した。
それと、手元でデバッグ軽くやっておいた。
2019/08/27(火) 21:10:12.33ID:ZWZUVJ+Q
>>186
そりゃよかった。
出題者に宿題解かされたかな??
2019/08/27(火) 22:42:10.07ID:ZWZUVJ+Q
お題:値が変更不可能でインデックスだけ参照できるシャッフルされた配列を何らかの方法でソートする。その際配列や値のコピーは取れない。
C++でいう、constの配列をなんとか整列してみましょう。

自分の答え。:https://ideone.com/4S932i
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
2019/08/28(水) 00:57:09.32ID:iZEqAFR9
激お題:自動プログラミングプログラムを作るか日本語で説明せよ。方法は各自の言語にゆだねる。

https://ideone.com/2UWc8g
自分は上記のようなものを作った。
4kb位のプログラムができるのに多分数年かかる。
コンパイラの通ったかというのを取れれば文章的に正しいやつは何かを残していく。
でも、コンパイラに投げる動作はわからないので入れてない。
2019/08/28(水) 01:00:49.34ID:iZEqAFR9
>>190
perlわからないけど、参加してくれてありがとう。
コードが短くて羨ましい。
2019/08/28(水) 01:14:30.34ID:mmOF8lug
>>191 ナンジャそれは、お題でもなんでもない。 まず日本語の勉強をして出直してこい。
お題も人に解る様に出せないような人間はプログラマの素質はない。
2019/08/28(水) 01:51:57.69ID:iZEqAFR9
>>193
どこが解りにくかったですか?
テストコードは、言語で使える英数記号類を全探索するモノです。
195デフォルトの名無しさん
垢版 |
2019/08/28(水) 12:29:21.50ID:gV1iThk/
>>194
>>191全体
2019/08/28(水) 14:09:15.46ID:iZEqAFR9
>>195
お題と余談が書いてあるだけだぞ。
とりあえず、刮目して自動プログラミングプログラムを作ってください。
作れなさそうなら、概要を日本語で説明してください。
2019/08/28(水) 14:20:49.15ID:iHRPACN2
まず自動プログラミングプログラムってなんだよ
お前の造語なんか知らんわ
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 で値が取り出されて新たなリスト作るからコピーされちゃってんだけどね。
2019/08/28(水) 14:47:42.49ID:iZEqAFR9
「自動プログラミング」「プログラム」ですが何か。
DSLじゃないわ。
2019/08/28(水) 14:52:51.27ID:CKrqMRiB
1文字ごとにカンマが入って空白or改行を使わないプログラミング言語ってなんだろう…?
4kb(この表記だとビットかバイトかわからん)が数年で行けるってどういう計算だろう…?
2019/08/28(水) 14:59:27.89ID:iZEqAFR9
>>199
暗黙変数があるとオレ、フリーズしちゃうなぁ。
やったことない言語だけど、結果はあってると思う。
2019/08/28(水) 15:03:25.48ID:iZEqAFR9
>>201
文字の列挙のリストには抜けがあるかもしれない。
C++は改行しなくても空白さえあればかける気がするけど。

なお、字数が増えれば増えるほど遅くなる。

とりあえず、実行してみればわかるけど、検索文字を総当たりしてるだけだからね。
んで、コンパイラに投げて通るかどうかのチェック入れないといけないんだ。
2019/08/28(水) 15:06:25.36ID:iZEqAFR9
>>201
あぁ、指摘には感謝しておく。
4kbは大体4千字くらいか。
2019/08/28(水) 15:59:11.53ID:CKrqMRiB
字数が増えれば増えるほど遅くなる、の遅くなり具合がわかってない気がする
使用する文字の種類を60とした場合、総当たりで毎秒10億個生成できても19年で10文字くらいだよ
2019/08/28(水) 16:09:46.11ID:DKDzG5Os
ただの無限の猿定理では?
2019/08/28(水) 16:18:28.21ID:iZEqAFR9
>>205
うほ!そんな遅いんかいな。
オーダーよりパッションで作ったのでそこまで考えてない。
それが・・・現実・・・!!!

>>206
そんなかんじだねぇ。
2019/08/28(水) 16:19:08.51ID:DKDzG5Os
設問が悪い。
自動プログラミングプログラムの出力が不正でなければ良い→コンパイルエラーないしはランタイムエラーを出さない、で良いの?

phpのソースを書き出せば問題ない。
ランダムな文字列を出力し続けても、文字空間が64文字であれば、5文字目以降、毎回1/1073741824で失敗するがそれ以外のケースで自分自身を表示する正しいプログラムになる。
2019/08/28(水) 16:42:26.29ID:e0ao7N2r
>>200 自動プログラミングが何で数字の羅列なんだよ。
何処がプログラミングだよ。 こんな物どんなコンパイラを通したら意味を持ったプログラムになるんだよ。
2019/08/28(水) 16:43:40.35ID:e0ao7N2r
>>200 自分が日本語で説明してみろよ。
2019/08/28(水) 17:16:03.37ID:iZEqAFR9
>>209
エーっと、C/C++はポインタがあるので実行したマシン破壊する確率は高いな。
わざと文書的に正しければと書いてあるんだが、気づいてないな。

>>208
そうですなぁ。チェッカーがエラーを吐かないでよかった気がする。
2019/08/28(水) 17:16:54.34ID:iZEqAFR9
とりあえず、絶不評なので>>191は終了します。
お付き合いいただきありがとうございました。
2019/08/28(水) 17:33:20.06ID:DKDzG5Os
ガチでやるなら遺伝的アルゴリズムで遊んだほうが面白そうな話題ではある。
総当たりは分が悪い。
214デフォルトの名無しさん
垢版 |
2019/08/28(水) 18:50:08.98ID:sIwi/wTh
みんなまじめに小学生の相手して偉いなぁ
2019/08/28(水) 19:02:24.38ID:31wF8+fr
ネットでプログラムとかコードとかの記事検索して予約語が含まれるセンテンスをコピペするプログラムとかどう?(゚∀゚)<これを自動プログラミングと呼べるかどうか知らんけど
216デフォルトの名無しさん
垢版 |
2019/08/28(水) 19:28:19.63ID:gV1iThk/
>>212
最後まで何をやらせたいのかわからなかった。
2019/08/28(水) 20:50:01.23ID:f9cLfftu
>>214
そいつは小学生じゃなくて
わりと高齢の池沼だと思う
2019/08/29(木) 00:02:26.73ID:gFHz9oC8
まあ例のコテロートルだろうな
2019/08/29(木) 00:48:42.64ID:5IzqEHY7
お題: 入力として任意の長さのバイト列(半角アルファベット)が与えられる。入力を左から読み取っていくとき、
読み込まれるバイトの状態遷移を表すデータまたは画像を出力せよ。ただし、初期状態は'^'、終了状態は'$'で
表すものとし、状態遷移図のノードには重複がないものとする。

例)
"AKDAK"

^: A.
A: K.
K: D$.
D: A.
$: .
2019/08/29(木) 01:15:35.61ID:goo8Bnc2
mousukosikangaetekarasyutudasisiroyokusokotega
2019/08/29(木) 03:44:38.74ID:+saAg95g
>>220
kantansugitakana?
2019/08/29(木) 11:53:46.40ID:DcYjq8Qg
nande2do$ga deterunda?
223デフォルトの名無しさん
垢版 |
2019/08/29(木) 13:28:32.46ID:gjTy67rx
>>219
> 読み込まれるバイトの状態遷移を表すデータまたは画像

とは何か?
2019/08/29(木) 20:14:38.43ID:+saAg95g
>>223
状態遷移図。
2019/08/29(木) 20:21:57.74ID:1SU6nQHs
ループまで検出シロっていってるのかいな?
226デフォルトの名無しさん
垢版 |
2019/08/30(金) 00:51:59.58ID:0mnJOhtL
>>222
D$は、Dに遷移するか、または、$に遷移するって意味じゃないかな
2019/08/30(金) 01:22:20.46ID:Knt08H1L
ちゃうやろJK
edgeの終端が二股は有効グラフではNGやで
228デフォルトの名無しさん
垢版 |
2019/08/30(金) 06:09:58.43ID:N+Bub+CM
お題
1億以下の同じ数字でできている数(1,22,777など)をすべて表示する
2019/08/30(金) 06:52:02.20ID:BnHn7wdj
>>228
perl5
http://ideone.com/KwFHjS
2019/08/30(金) 06:53:07.28ID:BnHn7wdj
0抜けてた悔しい
231デフォルトの名無しさん
垢版 |
2019/08/30(金) 07:10:25.46ID:N+Bub+CM
>>228
自然数を対象とします。なので0は対象外。
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]
2019/08/30(金) 10:54:33.08ID:TOyFnU58
>>228 Google Sheets
=ARRAYFORMULA(REPT(ROW(1:9), COLUMN(A:H)))

https://i.imgur.com/pKQgzAG.png
234デフォルトの名無しさん
垢版 |
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/
あ、わかった。ごめん。
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)
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
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]
240デフォルトの名無しさん
垢版 |
2019/08/30(金) 19:34:06.70ID:9dkB4daP
>>228
あほ
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
242デフォルトの名無しさん
垢版 |
2019/08/30(金) 23:55:50.54ID:olp7cGEF
>>228
Kotlin
https://paiza.io/projects/AFbELIff7j3sUnxSndQLvg
243デフォルトの名無しさん
垢版 |
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
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]]
2019/08/31(土) 08:45:29.92ID:h26kuCJS
お題
>>228 を求めることができる
特に最適化を施さないナイーブな実装(例えば>>238 )を書いて
その実行にかかる時間(ミリ秒、秒等)を計測し出力してください

なお遅い言語処理系で1億以下が無理な場合は1千万以下でも構いません
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
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)) "
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]
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千万以下で計測)
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)
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]
2019/08/31(土) 13:39:39.88ID:u8Io5isX
>>228
https://ideone.com/0Hy6a6
C++。いつもなら数え上げで書くところだが、今回は趣向を変えてみた。
2019/08/31(土) 13:43:00.43ID:weQXwxl4
>>252
>>231
> 自然数を対象とします。なので0は対象外。
すぺしゃらいずいらねw
2019/08/31(土) 13:44:48.13ID:u8Io5isX
ぶー!!!
・・・これが・・・!!!・・・これこそが・・・!!!
・・・だ・・・!!!・・・だそく・・・!!!!
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]...]]
]

って言う数列を生成して、合計出してフラットにしてソートしてるだけだよ。
(他の言語のも多少の手順の違い(フラット化とソートしないで「合計出した時点で表示」を縦方向に繰り返したり)はあるけど、基本のアルゴリズムとしては同じ)
2019/09/01(日) 18:40:58.06ID:lGQcNl0x
お題: nバイトのデータxをビット列にして出力しなさい
2019/09/01(日) 19:01:25.42ID:KcbCTlPY
>>257 Java
https://ideone.com/4I2YQt
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
260デフォルトの名無しさん
垢版 |
2019/09/01(日) 19:42:33.97ID:931SdLmv
>>257 Common Lisp
https://ideone.com/EmGPSF
2019/09/01(日) 20:53:53.13ID:kwhZ+eUh
>>259
rand 255 ⇒ 256 の方がヨカタ
2019/09/01(日) 21:45:06.97ID:CELgatxy
>>259 コピペミス
print "@b\n

print "@b\n";
263デフォルトの名無しさん
垢版 |
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]
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]
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
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
267デフォルトの名無しさん
垢版 |
2019/09/02(月) 12:10:04.08ID:rT9Zixkt
>>233
勉強になりましたw
2019/09/02(月) 12:49:28.87ID:YYsNPCXj
>>257
https://ideone.com/L5lkiU
C++。気が向いたのでstd::byte動かしてみたけど、ideonが対応してなくてグレードダウンした・・・。
269デフォルトの名無しさん
垢版 |
2019/09/02(月) 15:10:33.79ID:rT9Zixkt
全滅エンドか!?
270デフォルトの名無しさん
垢版 |
2019/09/02(月) 21:31:28.92ID:qij/0ceW
>>247
VB
https://paiza.io/projects/ij82oWiswOxWM0VnAgVbWQ
271デフォルトの名無しさん
垢版 |
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"
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
273272
垢版 |
2019/09/03(火) 05:28:10.06ID:VYSmTHvF
a=2 b=1で 3^x + 4^y = 5^z
は解無し
2019/09/03(火) 08:27:27.03ID:Sk67xQLY
a b は実数? 正の整数?
275デフォルトの名無しさん
垢版 |
2019/09/03(火) 08:38:58.69ID:VYSmTHvF
出てくる文字、a b x y z はすべて自然数、正の整数です
2019/09/03(火) 08:39:49.44ID:03sYx3ae
a > b > 0 なの?
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 が成り立つことも判っています
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
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、⌒ヽ'
        ゙、`--─゙      /!         `、
  _,,、-     ゙、 ー''    / ;           `、
-''"_,,、-''"    ゙、    /;;' ,'  /         、\
-''"    /   `ー─''ぐ;;;;' ,'  ノ      
   //    /     ヾ_、=ニ゙
2019/09/03(火) 13:20:54.78ID:SA/JpX4x
どう考えてもスレチだよなぁ
必要なのはプログラムじゃなく紙と鉛筆っぽいし
2019/09/03(火) 13:43:33.95ID:WMTa8Qij
このスレは数学嫌いな奴多いなぁ
べつにちょっとぐらいいいじゃないか
2019/09/03(火) 13:52:03.24ID:/IQ7x87c
むしろこのスレは本当にコンピューター使わないと解けないような
パズル問題とかの方が解答つかないことが多い
2019/09/03(火) 14:53:42.89ID:R1k47NOJ
掛け算があるので加速的に左の解が増えるので追い付かなくなる予感。
2019/09/03(火) 15:14:05.99ID:R1k47NOJ
>>272
https://ideone.com/NIuUAj
C++。コードが正しければ解ナシ。
2019/09/03(火) 15:15:29.58ID:R1k47NOJ
(a^2 - b^2)^x + (2ab)^y=0
(a^2 + b^2)^z=0

の連立方程式解くとよさそうに見えるが。
解くのむずくて俺は無理。
2019/09/03(火) 15:28:15.62ID:03sYx3ae
>>285
何かの冗談? それじゃ明らかに解無しなんですが
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
2019/09/03(火) 15:38:54.45ID:R1k47NOJ
自分で移項して解こうと思ったがキャパ超えててギブアップ。

>>286
解があることは証明されているのですか?数学ダメなんだよ。
2019/09/03(火) 15:40:16.69ID:03sYx3ae
>>288
(a^2 + b^2)^z=0 <=> a = 0 and b = 0
a > b はどこ行ったの?
てか勝手に両辺=0にしちゃその時点で必要性満たしてないよね
2019/09/03(火) 15:45:42.09ID:R1k47NOJ
数学ダメなのでセオリー知らないんだけど。マジ解らん。

正直すまんかった。
2019/09/03(火) 15:47:50.03ID:R1k47NOJ
あと、ちょっとだけ。
>>289
俺はaとbをゼロには規定してないよ。
2019/09/03(火) 15:50:06.71ID:gHL/qcPl
>>284
18行目の不等号逆じゃない?
x=y=z=2の時に出力出るはずだけど。

(元のお題ではxは3以上)
2019/09/03(火) 15:52:04.84ID:R1k47NOJ
>>292
https://ideone.com/ZNkEYb
弄ってみた。
2019/09/03(火) 15:56:44.07ID:gHL/qcPl
doubleの演算誤差出てるなwwww
2019/09/03(火) 15:57:29.86ID:R1k47NOJ
>>293 直しました。
大きな数で発見できているかな?
2019/09/03(火) 16:00:10.37ID:R1k47NOJ
いや、精度飛んでて、うまく測れてないな。
2019/09/03(火) 16:01:59.48ID:gHL/qcPl
演算誤差ではないか 誤差で=になるレベルじゃない
AとB出力してみ?
2019/09/03(火) 16:02:55.16ID:R1k47NOJ
多倍長無いと証明には至らないな。
というわけで今回は抜けるわ。
乱文申し訳ない。
2019/09/03(火) 16:03:35.69ID:gHL/qcPl
あ、doubleからstd::size_tになってたw
2019/09/03(火) 16:10:08.37ID:R1k47NOJ
色々弄ってみたけど、これで凍結しておくわ。
すまんかった。
2019/09/03(火) 16:42:54.68ID:03sYx3ae
>>291
規程してないよって言ってるけど
貴方が提示した条件は a=0 and b=0 と同値ですよって指摘してるんですけど難しいですか私が言ってる事
2019/09/03(火) 16:46:54.03ID:R1k47NOJ
>>301
正直言えば難しいね。手を出さなければよかったとちょっと思ってる。
すまんな。
303デフォルトの名無しさん
垢版 |
2019/09/03(火) 21:38:14.04ID:MpIMqTuu
>>277
なんでxだけ3以上なの?
yとzは本当に1以上の整数として解いていいの?
aとbは定数として扱うの?
なんなの?
304デフォルトの名無しさん
垢版 |
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だけはいまのところ他にないを証明可能
305デフォルトの名無しさん
垢版 |
2019/09/03(火) 22:33:37.84ID:dCTs9gWx
>>257
VB
https://paiza.io/projects/grWlkqU1Rb-dk-QNh69rRQ
306デフォルトの名無しさん
垢版 |
2019/09/03(火) 22:40:59.77ID:MpIMqTuu
>>304
だからxだけ3以上でyとzは1以上の整数として計算していいか聞いてんだけど?
で、もしそうだったとしてなんでxだけ3以上に仮定してんのかも合わせて聞いてんだけど答えろよ
307デフォルトの名無しさん
垢版 |
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
定理を発見したら著作権で保護されるのかな。
2019/09/04(水) 08:46:01.17ID:HTJbgiFI
日本数学会に提出する前に
大学の教授にみてもらわないと
2019/09/04(水) 09:59:12.24ID:bj6rvw0v
次スレは数学禁止ってスレタイに入れないとな
2019/09/04(水) 10:54:57.98ID:wUnebE5/
>>310
そして手柄を横取りされる定期
2019/09/04(水) 11:24:41.75ID:P7o6e2y0
お題: 平面上にいくつかの円 (内部も含む円) がある
それが重なったり重ならなかったりしていて、最も重なっている箇所ではN個の円が重なっているとする
このとき、各円の座標と半径が与えられた場合にNを返すプログラムを書け
2019/09/04(水) 13:52:37.01ID:aB3hMBX/
半年くらい前にそのお題あったが思いつかなかったんだよなー…モンテカルロなら作れるがw

https://mevius.5ch.net/test/read.cgi/tech/1549160513/405
2019/09/04(水) 14:06:48.93ID:HTJbgiFI
それ円周率パイとネイピア数のe の積が
N個の円の重なる唯一の x座標とy座標の円達を与えられて返すの辛くないか?
316デフォルトの名無しさん
垢版 |
2019/09/04(水) 14:13:24.75ID:yXyTPmQk
>>315
辛くねえよ
どうやったら方程式解いて超越数が出てくんだよ
ちょっとは考えてからレスしろ
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
だったら大変かもしれない?
318デフォルトの名無しさん
垢版 |
2019/09/04(水) 17:19:01.11ID:reYoOADS
>>273
これ解無しって言ってるけど自明じゃないよね
ホントにあってんのか?
2019/09/04(水) 18:34:12.43ID:6EOP5CCF
>>306
横レスだが
騒ぐ前に元の>>272の問題文を良く見なさい
それで自分で判断できなければ数学的な問題に取り組むのは止めておいたほうが良い
320デフォルトの名無しさん
垢版 |
2019/09/04(水) 18:42:19.25ID:8qjE+V3b
>>319
一連のやり取り見て出題者がそこら辺理解してなさそうだったから改めて確認しただけなんですけど
>>272を見ただけでは>>306の全ての質問に答えられないことは明白なのに何いってんの?
数学の論理もわからねえくせに見当違いのお説教してんじゃねえよ
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ならば解なし
323デフォルトの名無しさん
垢版 |
2019/09/04(水) 19:23:20.13ID:5HyNYB53
かいてから考えたら間違ってるところがでてきた
ここまではいいとして、これあってないな


> 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しかでない
2019/09/04(水) 20:01:35.58ID:P7o6e2y0
>>314
あら既出だったのか
Twitterで見つけてきたんだけど、その人もこのスレ見てたのかな
それとも問題自体が有名な問題なのかな?
2019/09/04(水) 22:19:56.37ID:bGWgoiea
少なくとも自分はAOJで見た記憶がある
たしか高校生向けのコンテストの問題だったはず…
2019/09/04(水) 22:31:18.96ID:A7beDSD/
>>313
座標と半径が与えられたら、ひたすらHypotするんだ!!
これ、ゲーム技術だから覚えておくとよいよ。(偉そう
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 であることが必要である。
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/
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
331デフォルトの名無しさん
垢版 |
2019/09/04(水) 23:25:42.22ID:4CPx11+J
>>313
VB
https://paiza.io/projects/JW7K9hSmkAVtXbO3II21Nw
2019/09/05(木) 00:10:35.11ID:ymsvBiyv
>>313
https://ideone.com/DdvszK
C++。暇だったので解いてみた。が、あってるかわからない。
2019/09/05(木) 10:41:35.98ID:jPhMORz8
置く場所の最大サイズ2000*2000くらいまでだとprocessingとかで半透明の円を重ね合わせれば一番濃いところが正解だから合ってるかどうかだいたい見て分かる
rが小数で半径が0.0001から1億くらいまでまちまちだと面倒
2019/09/05(木) 10:53:13.59ID:Wm4c6P24
>>327,331-332
俺とは問題の解釈が違うようだ?
335デフォルトの名無しさん
垢版 |
2019/09/05(木) 11:32:41.41ID:JTGocygG
>>334
そいつらはいつものアホやからスルーしなはれ
2019/09/05(木) 13:09:10.29ID:n5jm1pTY
>>326
高校生レベル高いな
まぁアルゴリズムとか高校生でもすごい子いるもんなー
競プロとかすごいもんなー
337314
垢版 |
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
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ずつあったとして適切に組み合わせれば
全てがマッチングできる。ただ人組でもペアを間違えるとマッチングできない。

こういったことを実現するためには、どういった考え方でプログラミングすればいいでしょうか。
2019/09/06(金) 22:02:46.96ID:adnLBrFU
動的計画法でいいのかな?
オレできねーけど。
2019/09/06(金) 22:06:24.07ID:IlHiLkpw
>>339
各グループの材料を固有値の昇順にソートして小さい方からペア作ってくのではダメなのか?
2019/09/06(金) 22:10:20.13ID:adnLBrFU
A:大<->小
B:小<->大

のペアがましといえばまし。
真ん中がマッチしない可能性はある。
343339
垢版 |
2019/09/06(金) 22:10:34.94ID:h6IBFFVJ
なるほど、とても簡単な問いだったのですね。
なんか難しい事ばかり考えていました。
2019/09/06(金) 22:11:12.30ID:5B1pyUbX
diff のアルゴリズムがもうちょっと複雑なのにも対応できるやつじゃなかったか?
2019/09/06(金) 22:14:00.34ID:adnLBrFU
あー、差が以下か。
A:小<->大
B:小<->大

でいいわ。。。
俺もなんか難しいこと考えてた。そーりー。
346339
垢版 |
2019/09/06(金) 22:14:53.61ID:h6IBFFVJ
必ずマッチングできない100ずつあったとした場合でも昇順ソートして同じ順位にいるもので、比較してマッチングできれば実施、できなければ上位を参照してマッチングできたら抜けて、できなければさらに上位とマッチングみたいなことをすれば良いのか。
347339
垢版 |
2019/09/06(金) 22:23:16.91ID:h6IBFFVJ
あっ違う違う。
昇順にソートして組み合わせるとマッチングできないもの出てきます。
というのも差が最小の組み合わせではなくて、
差がある一定以下である事なので、昇順にソートして隣り合うものではダメです。

少し考えたのですが、全ての組み合わせを実施して、その計算結果、今回は差がある数値以下である数が多い組み合わせを採用するみたいなことになるんですかね
2019/09/06(金) 22:44:43.03ID:IlHiLkpw
>>347
適切な解が存在するケースで、小さい順の付き合わせでダメになる具体例を示せる?
349339
垢版 |
2019/09/06(金) 23:00:40.30ID:h6IBFFVJ
ないですね。
ということは、やはり最小のマッチング以外はありえないということになるのですね。

材料在庫が変動していたとしても、その瞬間の最小の差のペアを作ることが
一番効率の良いマッチング方法になるということか、、、。
2019/09/06(金) 23:08:33.74ID:adnLBrFU
>>339
https://ideone.com/vjhJdO
C++。ちょっと思いついたのでコード書いてみたよ。
ちょっとグリードに組み合わせ作るようにしてみた。
2019/09/06(金) 23:19:00.83ID:Sfa1dP8m
全てマッチングできるとは限らず最も多くマッチングできる組み合わせ
を求める ならちょっと工夫必要そう
2019/09/06(金) 23:24:40.52ID:h6IBFFVJ
皆さんありがとう。

最も多くマッチングさせるときは、閾値に一番近い選択を行うことがシンプルということかな?

>>350
コードありがとうございます。
プログラムを生業にしている者ではないのでC++の開発環境から構築になりますが、試してみます。
2019/09/06(金) 23:31:32.53ID:adnLBrFU
fix it.
2019/09/06(金) 23:32:51.82ID:adnLBrFU
大したコードではないが、そこまで威力があるとは思わなかった。
動機なんてそんなもんか。
2019/09/06(金) 23:43:04.03ID:sc/CXZHY
お題: ある会社の営業曜日(複数可)と営業時間が与えられる。今月1ヶ月の営業時間の合計を求め、今月のカレンダーの下に表示せよ。ただし、その会社は祝日・祭日を特別扱いしないものとする。
356399
垢版 |
2019/09/07(土) 00:15:01.96ID:meGL1HdM
>>354
おぉ見るたびマッチング精度上がってる
ありがとうございます!
参考にさせてもらいます
2019/09/07(土) 09:58:38.85ID:kl0P3WfA
>>350
>>339は固有値の差と言ってるのに>>350は固有値の和でコード書いてるように見える
2019/09/07(土) 10:01:09.66ID:15iR+LCW
そもそもeigenvalueじゃないのに固有値と言うのに違和感を覚える
2019/09/07(土) 10:40:38.85ID:K3PTI0jA
わからんな
結晶や薄膜やらだと本当に固有値がある
ヤツは「材料」って言っていて、その先に何を想定してるかこちらには伏せられたまま

もしかすると高分子の製薬かもしれない
使うと無くなるんだろ?
2019/09/07(土) 13:46:49.28ID:VQVarZXt
>>357
あ・・・。そうだね、そうだね。
すっかり勘違いしていた。
2019/09/07(土) 14:08:25.27ID:VQVarZXt
https://ideone.com/96njsa
C++。引き算する場合、奇策練るとよくない感じだなぁ・・・。
しかし、うっかりしてたわ。
2019/09/07(土) 14:45:59.42ID:VQVarZXt
https://ideone.com/Dmt87R
C++。暇だったから、いじってみた。
自分の方法だと、スコア高い?けどたまに100ペアにならないことがある。
これで今回はこれがオチとしておく。
363399
垢版 |
2019/09/07(土) 20:55:02.76ID:aT864lGO
>>362
やっぱり、最小のペアを選んでいくことがベストなのかな?

できれば差は出来るだけ小さい方が良くて、結果みてると後者の方が良好な結果が出てる気がする
2019/09/08(日) 00:49:49.01ID:YBN7WO0H
排便を
壁に塗りつけ
したり顔
365デフォルトの名無しさん
垢版 |
2019/09/08(日) 02:51:14.16ID:bEtb/TpC
>>257
Kotlin
https://paiza.io/projects/l3g48R76SbErJStepj8qmg
366デフォルトの名無しさん
垢版 |
2019/09/08(日) 08:38:41.51ID:GRxK0QRw
>>313
正方形だと3倍速い
2019/09/08(日) 09:39:44.56ID:46Wp6heU
3倍早いだけだったらオーダーが変わらねーじゃん
円が一万個一億個一兆個だったらどうなんの
368デフォルトの名無しさん
垢版 |
2019/09/08(日) 09:58:44.95ID:GRxK0QRw
3日の仕事が1日で済むとも言う。
2019/09/08(日) 13:16:12.58ID:rbzdrKrZ
>>363
ランダム生成している数字が割と一様なのでそういう結果になるけど、
まばらに片寄っていたらどうすればいいかはその時しかわからんなぁ。
2019/09/08(日) 23:16:36.64ID:YT+ZQkc/
何か初心者にも解ける面白い問題ないかな?
2019/09/08(日) 23:23:17.86ID:YT+ZQkc/
お題: 質問文とn個の項目からなるメニューを実装せよ。

質問文とn個の文字列が入力として与えられる。質問文とn個の項目をかっこよく表示し、ユーザーが一つ項目を選ぶまで待つ。選んだら、選んだ項目を出力する。
2019/09/08(日) 23:47:28.87ID:YT+ZQkc/
お題: マイ ドキュメントのフォルダ階層構造を表示せよ。
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 を一部改変)
374デフォルトの名無しさん
垢版 |
2019/09/08(日) 23:48:22.91ID:7lW0qzzX
お題:北のミサイルをなんとかせよ
2019/09/08(日) 23:51:10.96ID:ZRQn+E7p
どっかの国ハックして打ち込むしか
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
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) "
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]
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) "
2019/09/09(月) 15:35:48.47ID:pmQvKTaB
>>373
https://ideone.com/AoQVOB
C++。あってるかな?
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
382デフォルトの名無しさん
垢版 |
2019/09/09(月) 17:47:36.36ID:Uwb0lHsl
>>373
Kotlin
https://paiza.io/projects/E_9ZAZNclHjS7_qn4WPBbg

ファイルというか標準入力から入力する事しかできない。
383デフォルトの名無しさん
垢版 |
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]
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
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.
$: .
2019/09/10(火) 01:16:31.32ID:/hHoc5h9
状態遷移図ってどんなときに役立つかな?
2019/09/10(火) 01:20:32.52ID:2zzGvcE4
ほらまぁ
状態遷移を表形式で定型的に定義した方が
言葉の羅列やグラフもどきポンチ絵などで表現するより明確な場面
さまざまなとき
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)
390デフォルトの名無しさん
垢版 |
2019/09/10(火) 08:11:29.51ID:lIijspdS
>>373

>>379 のブロック内で処理するのが分かりやすかったので、Haskellもprint以外の処理をリスト内包表記で完結するようにした。

main = print [y - x | let lst@(_:ls) = [3,1,4,1,5,9,2,6,5], (x,y) <- zip lst ls]

文字数としては >>383 より増えるが、読みやすさ優先。
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]
393デフォルトの名無しさん
垢版 |
2019/09/10(火) 19:17:03.68ID:CNsNp03m
ああ… forの前にif (!head) return overlappingPairs; のearly return入れ忘れた…
2019/09/10(火) 19:18:47.68ID:ER41jhKS
何言語?
2019/09/10(火) 19:51:01.24ID:4IK1yyiH
女子小学生のメスガキビッチ言語
396デフォルトの名無しさん
垢版 |
2019/09/10(火) 20:05:04.03ID:9QXTHM58
なるほどjavascriptね!
2019/09/10(火) 20:19:20.42ID:ER41jhKS
https://ideone.com/d5aNNP
C++。なんか面白そうだったので、 >>392 をパクって移植してみた。
結構ジェネリックにかけたが、考える負荷高いね。
2019/09/10(火) 20:31:26.62ID:ER41jhKS
>>397
コード追加。MakeHogeで困ることあるかなぁ?
あんまりユースケース見えてないから、不具合あったら教えて。
2019/09/10(火) 21:25:03.39ID:OfzP/6E7
>>392
>>377 も頼む!
2019/09/10(火) 23:08:14.13ID:aMyCuNre
お題
スネークケースをアッパーキャメルケースに変換せよ
アンダースコアを単語の区切りとみなし、単語の先頭は大文字に、先頭以外は小文字に変換すること
また、単語を連結したときに数字が連続する場合はアンダースコアを残すこと

(例)
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]
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
2019/09/11(水) 00:26:05.86ID:JxGfX2fh
>>402 その例ではいいけど
Odai00_9_9Test
↓になっちまうな…
Odai00_99test
2019/09/11(水) 00:31:52.77ID:TkJgDVYV
>>400
https://ideone.com/6apRE9
C++。オレ、馬鹿になってる〜。と苦しんでいた。
405デフォルトの名無しさん
垢版 |
2019/09/11(水) 00:44:08.30ID:hWizELa3
>>397
C++むずかしすぎワロタwwwww
2019/09/11(水) 00:47:45.94ID:TkJgDVYV
C++とJSとの違いは大雑把に言って、使う型を先に決めるか後で決めるか。という程度だと思う。

オレ、自分の幸福度を上げるために、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"
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' "
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
2019/09/11(水) 06:06:45.97ID:CEu0fvWD
>>409 補足

puts f["Odai00_9_9Test'] # => Odai00_9_9test
2019/09/11(水) 12:54:52.45ID:Alp4BtBi
>>400
perl5
https://paiza.io/projects/GgkMgqOqyzwwgbmu-Fn-Vg
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
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"
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
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
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]
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)
418デフォルトの名無しさん
垢版 |
2019/09/12(木) 02:26:36.91ID:IEWaKNAx
>>400
Kotlin
https://paiza.io/projects/nJNQpKN19OL_9d7CTfXDrw
2019/09/12(木) 09:48:36.52ID:XoEd0LBY
>>412 Ruby

p [1, 2, 3, 4, 5].each_slice(2).map(&:first)

# => [1, 3, 5]
420デフォルトの名無しさん
垢版 |
2019/09/12(木) 11:37:50.98ID:Cxpf63qu
>>412 JavaScript
[1, 2, 3, 4, 5].filter((val, idx) => (idx + 1) % 2)
//=> [1, 3, 5]
421デフォルトの名無しさん
垢版 |
2019/09/12(木) 18:13:32.79ID:sKYe7PWn
>>412
Kotlin
https://paiza.io/projects/O23Txsw6XtcwKDgOCmT86w
2019/09/12(木) 18:34:25.79ID:u0+zztnJ
>>412
https://ideone.com/leynnQ
C++。こんな感じで。
423デフォルトの名無しさん
垢版 |
2019/09/12(木) 21:30:23.66ID:+vUO8BYK
>>373 J
f =: 2 & (-~/\)

f 3 1 4 1 5 9 2 6 5
_2 3 _3 4 4 _7 4 _1


>>412 J
f =: _2 & ([/\)

f 1 2 3 4 5
1 3 5
424デフォルトの名無しさん
垢版 |
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]
2019/09/13(金) 02:03:47.81ID:qdoB8RTo
お題:辞書型クリプタを実装せよ。
私の実装: https://ideone.com/cjGdvA

貴方はどう書く?
427デフォルトの名無しさん
垢版 |
2019/09/13(金) 13:13:33.48ID:zfsxzWX8
>>412 Tcl
set x {1 2 3 4 5}
set r {}
foreach {a b} $x {set r [concat $r $a]}
puts $r

実行結果
1 3 5
2019/09/13(金) 21:31:55.35ID:5n7mddvT
>>427
> foreach {a b}

こんなオサレな書き方で二個処理できるのすごい
429デフォルトの名無しさん
垢版 |
2019/09/13(金) 21:37:33.86ID:sQZEDK+j
tcl/tkで「tk部分ははいいがtclがクソ」みたいなのよく見た気がするんだけど、あれどういうとこが根拠なん?
2019/09/14(土) 04:14:12.84ID:x5aQTHnU
お題: すべての人民は和平のために火急的に速やかに自己の復元を実現しなければならない。
431デフォルトの名無しさん
垢版 |
2019/09/14(土) 04:28:39.19ID:BS6VTuNp
>>412 Io
a := list(1, 2, 3, 4, 5)
a select(i, v, i isEven) println

実行結果
list(1, 3, 5)
432デフォルトの名無しさん
垢版 |
2019/09/14(土) 07:49:29.90ID:/8qdS/t9
>>419

>>420

スレ違いだし、関数型言語だけが再利用性が高いとは言わないけど、
仮にoddlistがリストに対して良く使われる処理なら

[1,2,3,4,5].oddlist()

とか使いたいよね?
確かRubyはそう言う基本クラスにメソッド追加出来たと思うけど(うろ覚え)、
それをライブラリにして公開したいとする。

そうなると名前の競合とか起こり得るので

import mylib

[1,2,3,4,5].mylib.oddlist()

としたいとか、ならないだろうか。

変数と関数は別が良いって思った。

(議論の流れになるなら、別スレに誘導してね)
2019/09/14(土) 08:17:19.38ID:G26P45sA
>>412 Python

print([ i for i in range(1,6,2) ])
# [1, 3, 5]
2019/09/14(土) 08:24:26.09ID:Hd+E1riT
>>429
スレチだが教えてやる
数字が文字列として扱われて実行時にパースされるから馬鹿みたいに遅いことだ
2019/09/14(土) 08:30:44.01ID:G26P45sA
>>412 Python a~f

print( ['a','b','c','d','e'][::2] )
# ['a', 'c', 'e']
436デフォルトの名無しさん
垢版 |
2019/09/14(土) 19:11:38.33ID:Rj/aIpzV
>>426
クリプタって何?
437デフォルトの名無しさん
垢版 |
2019/09/14(土) 19:29:31.44ID:daGZRaa0
ザラキ唱える人じゃないか
2019/09/14(土) 19:57:54.64ID:oc39AgJX
>>436
Crypter.

Crypt + er.
2019/09/14(土) 20:22:44.80ID:x5aQTHnU
>>437
それはクリフト
440デフォルトの名無しさん
垢版 |
2019/09/14(土) 21:03:45.14ID:KmV3vhTN
cryptoなんだからcryptorじゃないの?
2019/09/14(土) 21:19:35.56ID:0f+SL6BM
それをゆうなら、encrypterの方が自然じゃん。
2019/09/14(土) 22:06:47.02ID:31y0+jF3
でも、それをいうならの方が自然かも
2019/09/14(土) 22:21:17.26ID:oc39AgJX
EnCrypterか。了解。
忘れたらごめんなさい。
2019/09/14(土) 22:23:04.61ID:pQ8OW4Ak
EnCrypterはおかしい
Encryperでいい
2019/09/14(土) 22:23:28.79ID:pQ8OW4Ak
tが抜けた
446デフォルトの名無しさん
垢版 |
2019/09/14(土) 22:26:10.43ID:hhxdRhHk
EmScriptEn
2019/09/14(土) 22:35:29.16ID:oc39AgJX
>>444
なんか癖になってるんだ。
小学校から英語やってるわけじゃないからなぁ・・・。
2019/09/14(土) 23:35:07.41ID:1m2PUwRG
>>432
釈迦に説法は空しいし恥ずかしいのでやめよう
どう考えてもおまいより>>419のほうが力量が上
議論の余地は無いので安心していい
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
ウィキペディア
2019/09/15(日) 10:37:25.58ID:Pt8t6mL1
zipとunzip関数があるからそれで偶数と奇数に分ければいい
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からは$[の設定できなくなりました
452デフォルトの名無しさん
垢版 |
2019/09/15(日) 15:11:01.79ID:G44yhCx+
>>412 R
要素が 奇数個だとワーニングが出ちゃうけど

a<-1:9
print(matrix(a,2)[1,])
453デフォルトの名無しさん
垢版 |
2019/09/15(日) 15:41:23.29ID:5s85lzPu
鰐んぐ
魚にんぐ
2019/09/15(日) 16:31:54.72ID:vhYJbDpr
>>449
実行はしてないが、成果については「GJ!!」だ!
2019/09/16(月) 04:35:46.66ID:NOoJUh0d
お題: 文字列が渡されるので文字vの左隣の文字を小文字、右隣の文字を大文字に変換しなさい
2019/09/16(月) 06:10:07.69ID:VWND3fAL
>>455
"avbvc" の結果を教えてくれ
2019/09/16(月) 08:35:06.75ID:NOoJUh0d
>>456
その場合はvに挟まれた文字をxに変換してください
2019/09/16(月) 08:42:47.33ID:3bKCxc1X
>>457
"avvb" の結果を教えてくれ
2019/09/16(月) 11:06:17.48ID:uJI/7eR2
頭悪そうなお題はパスで
460デフォルトの名無しさん
垢版 |
2019/09/16(月) 15:26:20.20ID:eLMc9ESO
お題:1から100までの自然数がある。ランダムに30個抜き出せ。
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]
462デフォルトの名無しさん
垢版 |
2019/09/16(月) 16:08:30.72ID:ShPpQTCq
>>460
Kotlin script

println((1..100).toMutableList().apply {shuffle()}.slice(0..29).joinToString())
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
464デフォルトの名無しさん
垢版 |
2019/09/16(月) 16:59:32.09ID:ZgnCsjLO
>>460 J
(30?100) { >: i. 100
465デフォルトの名無しさん
垢版 |
2019/09/16(月) 17:36:43.98ID:enU8we0d
>>464
なるほど全然わからん
2019/09/16(月) 20:23:01.84ID:LKlzCOg4
>>460 Pharo/Squeak Smalltalk

(1 to: 100) asArray shuffled first: 30
467デフォルトの名無しさん
垢版 |
2019/09/17(火) 17:37:59.85ID:IoM9hprN
プログラム言語標準の文字列(e.g. java.lang.String) が与えられ、ランレングス圧縮した結果をプログラム言語標準の文字列で返す関数を作成してください。ただし、入力に数字が入っていた場合のケースは考慮しなくても構いません。
テストケース(関数名 = f)
f("あいうえお") -> "あいうえお"
f("ああいいうう") -> "あ2い2う2"
f("あいうあいう") -> "あいうあいう"
2019/09/17(火) 18:15:13.62ID:kyKgfAv0
あうあうあー -> あうあうあー
ああああ -> あ4
2019/09/17(火) 18:37:25.07ID:IoM9hprN
そゆこと
2019/09/17(火) 19:42:43.30ID:N7hzq5cx
python に あ2い2う2
のようにカウンティング結果を含んだリストを返すライブラリが
はいっていたな
2019/09/17(火) 21:40:53.07ID:nuFS/S7T
>>467
haskellだよー

join.map ((:).head <*> (bool "".show.length <*> (1 <).length)).group
472デフォルトの名無しさん
垢版 |
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``;
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
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
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
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
2019/09/18(水) 15:45:23.52ID:GIOjMe2C
>>467
https://ideone.com/3jC9wU
C++。いい感じにかけた。
478デフォルトの名無しさん
垢版 |
2019/09/18(水) 17:30:11.83ID:quy23QLp
むずかし過ぎワロタwww
俺にC++は絶対ムリwwwww
2019/09/18(水) 17:40:05.70ID:GIOjMe2C
>>478
自分の福祉のために圧迫しない程度に冗長に書いてるけど、ショートコーディングももちろんできるよ。
記憶力と直感と若干の経験で書いている。
2019/09/18(水) 19:34:59.80ID:Dukdxvvo
完成品はないけどなw
2019/09/18(水) 19:48:16.27ID:GIOjMe2C
>>480
ウインドウズのアプリっぽいの一個位は作ったことあるよ。
2019/09/18(水) 19:56:52.36ID:Dukdxvvo
はいはいいつもの
2019/09/18(水) 20:22:10.02ID:GIOjMe2C
>>482
ボット認定していい?
2019/09/18(水) 22:47:30.76ID:Zy9clRCR
>>483
bot(だと自分で思ってる)相手にレスしちゃう男の人なんて……
2019/09/19(木) 03:17:38.21ID:fzYUHnaE
お題: 明日の東京都の天気を教えてくれる「お天気ねえさん」を実装せよ。

https://www.drk7.jp/weather/
ここのXMLデータを参考に、明日の東京都の天気を優しく説明してくれるような説明テキストを生成せよ。

例) 明日XX月YY日の東京都の天気は○○です。○○注意報が出ています。傘を忘れないでね。
2019/09/19(木) 03:40:46.99ID:fzYUHnaE
ある種のデータは石油のように重要だから、データ自動生成は条件が揃えばお金儲けにつながる。まあ、とことんチャレンジしたまえ。
2019/09/19(木) 04:53:29.17ID:kXMoSLFb
>>485
sh と perl5
https://pastebin.com/3dXzkYvR
https://i.imgur.com/G3ehbXa.png

colorlizerの中がperl入りで
見やすくするユーティリティー
2019/09/19(木) 20:26:10.81ID:tW2U1Dga
google の検索結果を 10 づつ合計 1000 件ダウンロードするプログラム
2019/09/19(木) 20:38:41.32ID:fzYUHnaE
>>488
ボットはあかん
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
2019/09/19(木) 21:11:19.84ID:VNRPdI7o
>>460 octave
https://ideone.com/0BVjSC

>>467 ruby
https://ideone.com/GR4Uu2
2019/09/19(木) 21:20:20.35ID:7Zlc7qce
>>467
perl5
デバッガが日本語で化けるんで英語だけ
print("aabbccddd" =~ s{ (.) \1* }{ "$1" . length"$&" }xgre);
a2b2c2d3
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}};
 }
}
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%
…(後略
2019/09/20(金) 01:09:22.21ID:brDhMnbX
お天気おねぃさんとは、ほど遠いなコリャ…
2019/09/20(金) 04:34:57.12ID:vpcMUgg5
お題

以下の、列区切りが空白である入力文字列を、
最後の列の数値が、小さい順番で、行を並べ替えよ

答えは、上下が反転する

a b c 44
x y 33
z 22
11
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
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
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
2019/09/20(金) 13:59:42.96ID:fZRbtgUM
>>489
合法的? にやるにはどうすればいいの?
2019/09/20(金) 14:08:52.93ID:qcElLt/f
>>500
初手でウエイト入れないで読みに行って、アクセス規制法に引っかかるのとかありそう。
鯖落としたら、怒られるからな。警察に。
502デフォルトの名無しさん
垢版 |
2019/09/20(金) 15:01:57.40ID:8HAndpSr
>>496 J
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でつくればストア上でモーションも売っているのでかなり稼げると思う。
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
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
2019/09/21(土) 00:45:45.24ID:Ei1MM/mp
>>504
https://ideone.com/5PI58a
C++。今回はメインロジックの記述が少なくて楽だった。
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
2019/09/21(土) 00:50:19.09ID:Ei1MM/mp
うほっ。C++のunordered_mapはオーダー要求しないから、そこを使って最適化物故むとかやるんかいな。
VCとGCCと挙動違う。
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
510デフォルトの名無しさん
垢版 |
2019/09/21(土) 04:32:25.24ID:DxluyDWg
>>496
Kotlin
https://paiza.io/projects/6vObtBsKGF8CSWLHW8cUSQ
511デフォルトの名無しさん
垢版 |
2019/09/21(土) 05:21:21.47ID:DxluyDWg
>>504
Kotlin
https://paiza.io/projects/iaaP87ST43fSPdMkOiqSGQ
512デフォルトの名無しさん
垢版 |
2019/09/21(土) 05:37:07.36ID:RmdAWOHY
>>504 Ruby
a=readlines.map(&:chomp)
a.uniq.each{|v| puts("#{v} #{a.count(v)}")}
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]}
2019/09/21(土) 16:12:27.45ID:ZyFDPzPp
お題:正の整数が与えられるので、英語の序数に変換せよ
1 => 1st
23 => 23rd
12 => 12th
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
2019/09/21(土) 16:54:30.22ID:6wFtRpPA
>>514 Perl5、 >>515 はもう少しコンパクトに書けた

%o = qw{1 st 2 nd 3 rd};
printf "$_%s\n", $o{$_}//'th' for 1..10,12,23;
2019/09/21(土) 17:38:27.55ID:uZ0K83Mw
>>514 ruby
https://ideone.com/3Mupna
518デフォルトの名無しさん
垢版 |
2019/09/21(土) 18:24:27.24ID:9SoaGQ4l
>>504
Common Lisp https://ideone.com/VW5xja
Perl https://ideone.com/kfn4xI
519デフォルトの名無しさん
垢版 |
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

皆さんここらへん大丈夫?
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
2019/09/21(土) 20:51:54.21ID:BmADEcuL
お題: 与えられた西暦年月日を年号年月日に変換しなさい。ただし、変換するのは大正時代から令和までとし、範囲外であればERRORを表示しなさい。
2019/09/21(土) 21:04:33.10ID:BmADEcuL
お題: YYYY/MM/DD形式で与えられた西暦年月日の文字列が正しい年月日を表しているかどうか判定せよ。
2019/09/21(土) 21:24:10.22ID:BmADEcuL
>>522, >>521の順に解いて下さい。

1970/01/05
1990/12/31
2019/04/28
2019/05/01
1920/02/29
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
525524
垢版 |
2019/09/21(土) 22:29:42.44ID:y97V3EOz
>>524

Time::Piece->strptime は
1900/01/01 よりも前の日付だと
正しい西暦の年月日を入力しても
parse結果が不定となってしまうということがさっき分かりました。
したがって残念ながら>>524のcodeは>>522の題意を満たしているとは
言いがたいものでした。ゴメンね〜
2019/09/21(土) 22:37:53.07ID:tuxPF//K
>>521-523 Java
https://ideone.com/5XMVPB
2019/09/21(土) 22:44:04.41ID:7nrsNPcd
令和1年を令和元年にしないといけないという落とし穴があるようだ。
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]]
2019/09/21(土) 23:03:57.96ID:tuxPF//K
>>527 Java
https://ideone.com/q1JPJ5
しゅうせいしまった
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') "
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} "
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: 'あいうあいう'. "=> 'あいうあいう' "
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
2019/09/22(日) 08:57:02.33ID:yY5QhyPL
>>533
ruby知らんけどそのfって何?
2019/09/22(日) 09:05:16.49ID:8u0YwnlN
ラムダ式じゃねーの
おれもruby知らんが
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
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)
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
539デフォルトの名無しさん
垢版 |
2019/09/22(日) 11:43:05.12ID:OEThTvH6
>>514 JavaScript
const f=n=>n+=[,'st','nd','rd'][n%100>>3^1&&n%10]||'th'
実行結果略
540デフォルトの名無しさん
垢版 |
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
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
2019/09/22(日) 14:59:46.00ID:yzO2ACAf
>>541
一行目のコメント
#use Data::Dump 'dump';
はdebugの際に使ったstatementの消し忘れにつき、不要
2019/09/22(日) 15:13:26.78ID:yzO2ACAf
>>541
$nen = ($y = $t->year - $t0->year, $y ? $y + 1 : '元').'年' if $t0;
の「 if $t0」も削除し忘れだな、ゴメンチャイ
2019/09/22(日) 16:19:32.48ID:iYBBHKU1
https://github.com/systemd/systemd/blob/82d1264048a3768fb8238387810f78c5d3912058/src/journal/journalctl.c#L2405-L2461
このif elseの羅列をリファクタリングしてください(´・ω・`)
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);
2019/09/22(日) 17:45:39.81ID:vTpi5vA1
>>544
http://hengband.es.land.to/hengband-1.7.0-svn/

このあたりのspells1.cのproject_fのほうが豪華だよ
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";
}
2019/09/22(日) 20:58:52.87ID:Pb++lLAf
お題: マイドキュメントにある全てのファイルの更新日時を取得し、曜日ごとに平均時刻を集計せよ。
549デフォルトの名無しさん
垢版 |
2019/09/22(日) 21:11:37.57ID:PDMeYfrK
マイドキュメントがなかった
2019/09/22(日) 21:23:02.16ID:Pb++lLAf
お題: あるフォルダにある全てのファイルの更新日時を全て同じ日時にリセットせよ。
2019/09/22(日) 21:30:08.53ID:WdPSTicU
>>521-523 ruby 2.5.5
https://ideone.com/RLhbll
・令和対応はRuby 2.6.3から
2019/09/22(日) 21:35:34.35ID:rZK31NHQ
※未来の日時にするとMakefileなどで不具合の原因になるかもしれないので、やめよう。必ず過去の日付で。
2019/09/22(日) 21:40:33.36ID:2VFOPinw
>>1
◆T6も書き込み禁止
2019/09/22(日) 22:00:19.44ID:rZK31NHQ
>>553
カレンダー苦手?
そりゃごめんね。誰でも解けるような問題解いて面白い? もしかして
2019/09/22(日) 22:02:04.64ID:35++XhB6
とりあえずNGにした
2019/09/22(日) 22:03:45.82ID:35++XhB6
うっかり回答しないように連鎖にしとく方がいいか
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
2019/09/22(日) 22:24:24.30ID:W3ewN8v1
スルーだったか
2019/09/22(日) 22:44:17.87ID:rZK31NHQ
お題: 自分のプログラムファイルが何バイトかを表示せよ。
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
2019/09/22(日) 22:50:50.35ID:JOdgUuSI
>>548
馬鹿っぽ
2019/09/22(日) 22:53:39.99ID:JOdgUuSI
蟻人間、プログラミングに興味を持ち始めた中学生臭がすごい
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;
}
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;
}
2019/09/22(日) 23:10:48.88ID:Yf8464Y3
>>559 Perl5

print -s $0, "bytes\n";

実行
~ $ perl 15_559.pl
25bytes
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' "
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;
 }
}
2019/09/23(月) 00:23:07.10ID:JAc5gnVl
>>548
出題の狙い。犯罪捜査において被疑者または関係者の生活パターンを知りたいときに、パソコンのファイルの日時の統計のデジタル鑑識により、パソコンの使用実態が類推可能であることを示すものである。
2019/09/23(月) 00:28:46.25ID:GyCF+Do4
出勤とか寝る時間があまり変わらないという仮定で
同一人物の疑いがある2つのコテハンを
数百スレ分から時間別書き込み頻度から検証したことがあるが
それにくらべると得られる情報少なすぎて草
2019/09/23(月) 00:30:37.56ID:iF+DbCXr
>>568
馬鹿っぽ
2019/09/23(月) 01:01:29.40ID:ZSRjXCoe
>>568
朝と夜に作ったファイルの平均は昼になるし
ダウンロードした大規模なOSSのアーカイブを展開した物とか入っているんで
曜日ごとの平均時刻じゃー何の傾向も分かりません
2019/09/23(月) 01:43:06.73ID:ZSRjXCoe
>>567
そうじゃねぇだろ、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 で作成したファイルを実行しているらしく
結果が異なっているのはそのため
2019/09/23(月) 12:05:34.14ID:Pxp3zDR1
>>548
C++/Win32 模範解答。
https://gist.github.com/katahiromz/63c00d6c670370d7602fcd991fdc0eba
2019/09/23(月) 12:49:49.08ID:iF+DbCXr
模範解答(汚ねえスパゲティ)
576デフォルトの名無しさん
垢版 |
2019/09/23(月) 13:54:34.61ID:2RLjyW/B
>>504 Lua

a={}
for x in io.lines() do a[x]=(a[x] or 0)+1 end
for k,v in pairs(a) do print(k,v) end
577デフォルトの名無しさん
垢版 |
2019/09/27(金) 01:42:52.78ID:/3CUbuCi
>>521
Kotlin
https://paiza.io/projects/OrRiee2xfpa7RKGGYfpyfQ
578デフォルトの名無しさん
垢版 |
2019/09/27(金) 02:44:56.39ID:/3CUbuCi
>>522
Kotlin
https://paiza.io/projects/saSW2aaTiVigsU_14uCc-g
579デフォルトの名無しさん
垢版 |
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 {} \;
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}
581デフォルトの名無しさん
垢版 |
2019/09/27(金) 19:57:07.16ID:jf7tgLq0
>>580をコピペで実行するときは、`の後の半角空白を削除しないとエラーになる。
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
2019/09/27(金) 22:41:14.90ID:kWPPTdrf
>>582 Ruby

p [3, 1, 4, 1, 5].uniq.sort_by(&:-@)

# => [5, 4, 3, 1]
584デフォルトの名無しさん
垢版 |
2019/09/27(金) 23:07:29.28ID:Z4UqEtTG
>>582 javascript
[...new Set([3, 1, 4, 1, 5])].sort().reverse()
2019/09/28(土) 00:13:52.50ID:OLAr2jSy
>>582 Pharo/Squeak Smalltalk

#(3 1 4 1 5) asSet sorted: #> "=> #(5 4 3 1) "
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
587デフォルトの名無しさん
垢版 |
2019/09/28(土) 00:52:45.19ID:HcOq9X6n
>>568
それだったら曜日毎の1時間毎のファイル数でグラフにするとかしないと分かりづらいのではないか?

ああ。そういうお題作ればいいか。
588デフォルトの名無しさん
垢版 |
2019/09/28(土) 01:09:55.39ID:HcOq9X6n
お題: 指定のディレクトリ以下にある全てのファイルの更新日時を取得し、曜日毎、及び時間毎にしてグラフにして出せ。

これは同じ曜日の同じ時間で更新されているファイルのカウントということね。例えば今週と先週の土曜日の7:00代の更新ファイルが一つづつあれば土曜日7時代のカウントが2になる。
で、グラフにする時は表示方法はなんでもいいので例えばテキストでアスタリスク2個で出す。(後でこちらでもプログラム作るのでそれ参考にしてもいい)。
ディレクトリの指定方法は普通なら引数での指定が良いだろうけどプログラムに埋め込んでも標準入力やファイルから読み込んでも何でもいい。それはこのお題では肝心な事ではないので。
589デフォルトの名無しさん
垢版 |
2019/09/28(土) 02:06:50.36ID:63IK4172
それだったらファイル、ディレクトリ操作は除外してランダムに日時発生させるとかでいいだろ
機種依存するので
ランダム生成は依存しない
590デフォルトの名無しさん
垢版 |
2019/09/28(土) 03:07:13.28ID:HcOq9X6n
>>588
作った。

Kotlin
https://paiza.io/projects/8uUpDL9CaEZepG8gD2vV0A
2019/09/28(土) 03:08:06.06ID:HcOq9X6n
>>589
592デフォルトの名無しさん
垢版 |
2019/09/28(土) 03:10:19.21ID:63IK4172
unixタイムとかで、日時と整数は一対一対応してるだろ
ランダム生成で日時は作れる
593デフォルトの名無しさん
垢版 |
2019/09/28(土) 03:15:41.26ID:HcOq9X6n
>>592
いや、そうじゃなくて >>589 は何番のレスに対するレスなの?
594デフォルトの名無しさん
垢版 |
2019/09/28(土) 03:30:16.66ID:63IK4172
何番と限らず日時と整数は一対一できるから日時が関係するあらゆる問題
595デフォルトの名無しさん
垢版 |
2019/09/28(土) 03:58:16.37ID:HcOq9X6n
>>594
いや、 >>589 は何かを読んだ結果書いたんでしょ? 何を読んで書いたの?
596デフォルトの名無しさん
垢版 |
2019/09/28(土) 04:47:52.20ID:HcOq9X6n
>>588
もう一つ作った。

Perl
https://paiza.io/projects/snJD7lMN-gazmd2EQdDb1Q
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
2019/09/28(土) 15:09:30.05ID:E6lKnilk
C++標準のファイルシステムでは、パスは取れるが、時間を取得する関数がないっぽい。
2019/09/28(土) 15:18:04.57ID:E6lKnilk
あぁ、あったわ。C++17で入ったからまだ不明瞭だ。自分にとって。
2019/09/28(土) 15:36:35.57ID:E6lKnilk
>>559
http://coliru.stacked-crooked.com/a/5280874347a70de8
C++。C++17がいる。結構サクッとかけたな。
2019/09/28(土) 16:35:23.18ID:E6lKnilk
>>548
https://ideone.com/AWfTOd
C++。マイドキュメントの列挙だけで力尽きた。ぐはぁ・・・。
602デフォルトの名無しさん
垢版 |
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 + "|"
}
2019/09/29(日) 02:59:00.33ID:8mEp/ii8
お題: 地球上の2地点を緯度・経度で指定すると、(球面上の)直線距離を求めてくれるプログラム。

地球がほぼ球体であることを仮定してもよい。
2019/09/29(日) 03:04:31.30ID:8mEp/ii8
ロンドンからニューヨーク。
北京から台湾。
ニュージーランドからトルコ。
2019/09/29(日) 03:16:51.58ID:8mEp/ii8
参考に: https://keisan.casio.jp/exec/system/1257670779
2019/09/29(日) 03:55:31.74ID:8mEp/ii8
ヒント: 度をラジアンに変換。dの公式に代入する。緯度経度はグーグル マップで調べる。コサインの逆関数はアークコサイン。
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を掛けたモノが答え
2019/09/29(日) 09:23:23.08ID:GG+B8frl
ちょい間違った
(0,R,0)は東経90度の赤道上の太平洋上の地点で
スリランカ・コロンボから約1360kmの地点
(-R,0,0)がナウル島から1450kmの地点
(0,-R,0)はガラパゴス諸島から20〜25km程度の
太平洋上の地点
2019/09/29(日) 09:25:23.90ID:GG+B8frl
表計算ソフトを使うのが効率的ね
2019/09/29(日) 10:48:24.98ID:UzLHlBWt
地球を球に近似する時点でナンセンス。解く価値無し
2019/09/29(日) 11:06:06.70ID:VkSI6pCv
仮定してもよい なんだから球に近似しないで書けばいい話じゃね?
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
2019/09/29(日) 12:03:30.83ID:bEy1wMJX
>>612 2点間の経度緯度 の間違い
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
2019/09/29(日) 12:34:14.75ID:mYJaebwB
>>614 アンカーしくった
>>603-606 だた…orz
616デフォルトの名無しさん
垢版 |
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/xn
>>588 C
https://ideone.com/472wFP
2019/09/29(日) 23:51:59.00ID:k4CvVXqN
>>616
面白いってひどく曖昧だな
2019/09/30(月) 02:22:51.44ID:i5LhrskR
お題: サイズ15x15の空白マス('_')がある。黒マス('#')をいくつかランダムに置いて、空白マスが縦または横向きに5マス連続に並ばないようにしたい。ただし、
1. なるべく早く黒マスを配置せよ。
2. 実行のたびに常にランダムにまんべんなく配置せよ。
3. 黒マスが縦または横に隣り合ってはいけない。
4. (ア)全て並べる、そして(イ)並びが正しいか検証する、の(ア)と(イ)を15回繰り返してかかる時間を実測せよ。
621デフォルトの名無しさん
垢版 |
2019/09/30(月) 09:19:26.74ID:eZfyppwl
>>617
考えた。

でもこれは発表しない。誰にも教えない。墓まで持っていく。
2019/09/30(月) 10:08:08.98ID:4XC9Ks9U
>>620
馬鹿っぽ
2019/09/30(月) 16:46:23.79ID:ypiuCBLp
>>620
https://ideone.com/FggLLg
C++。ふえ〜。円の当たり判定しようと思ったのに、うごかないよ〜。
コード間違ってるのか、数学ぶっ壊れたのかわからん。
デバッグしてくれる人募集。

コード間違ってるんやったら、俺の認識限界がおかしいな。
2019/09/30(月) 17:15:46.44ID:ypiuCBLp
>>623
https://ideone.com/Q1X602
C++。代替え案。実行ごとにパターンが変わって敷き詰めた一例。
変わってないと思うなら0点のパターンを見てみよう。
2019/09/30(月) 17:20:40.68ID:ypiuCBLp
じっそうじかんは多分2時間以内だ。
2019/09/30(月) 17:55:07.40ID:tHR3tKyN
>>624
代替案(だいたい-あん)と言いなさい
2019/09/30(月) 18:25:02.21ID:ypiuCBLp
>>626
あー。すっかり忘れてた。。。
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マスまで連続に並んでもいい」だ
そこにさらに追加ルールを仕込むとクロスワードパズルの枠が出来上がる
2019/10/01(火) 07:35:49.09ID:NlppalS8
お題

言語限定(コマンドプロンプト・パワーシェル・bash/csh等のUNIXシェル)

10000までの素数を列挙して出力

当然だが、スクリプト言語処理系やコンパイラに丸投げさせるのは禁止
というか、技量の程度が疑わてしまうのでお勧めしない
2019/10/01(火) 08:06:53.05ID:7l0S2vrN
「○○は禁止」系のお題はろくなのがないから禁止した方がいい
2019/10/01(火) 08:35:57.10ID:NlppalS8
プログラミング言語なんて、禁止の塊で出来たものなんで
「禁止の所産」って奴な
632デフォルトの名無しさん
垢版 |
2019/10/01(火) 08:56:55.24ID:H2UNgdyX
>>629
シェルスクリプトスレ池
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
2019/10/01(火) 09:20:22.36ID:j8m55EYr
>>629 Linux
$ primes 2 10001
2
3
...
9967
9973
635デフォルトの名無しさん
垢版 |
2019/10/01(火) 09:21:08.21ID:R4cuDBX/
遅くまともな言語ではないやつで、どうにかして動くのを作れというお題なんだろ
まともな言語使用してしまえばお題からずれてるかと
636デフォルトの名無しさん
垢版 |
2019/10/01(火) 09:53:39.77ID:PlApYvsP
配列使えるシェルもあるからそういうの使えば楽かも
shでもsetすりゃ配列だが

まあでも遅そうで実用性なさげ
2019/10/01(火) 12:56:02.79ID:ygg8X6aa
>>629 コマンドプロンプト(Windows)
https://ideone.com/aeDkD1

おそい…コマンドプロンプトよーわからんですよ
638629
垢版 |
2019/10/01(火) 13:54:46.98ID:NlppalS8
>>637
スゴイw
やれば出来るものですね。
10000を超えても出力し続けてますw
2019/10/01(火) 14:02:08.82ID:ygg8X6aa
あ、10000までの制限がないww
limit=100までにしてるから10000以降に出た数値は信頼性ないwww

修正したものを実行して確認中…10000で止まったらUPる…遅い(´・ω・`)
2019/10/01(火) 14:07:52.43ID:ygg8X6aa
>>629 コマンドプロンプト (>>637の修正版)
https://ideone.com/5keIkO

637は書いてたはずのecho 2も消えてた(´・ω・`)
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
2019/10/01(火) 15:44:01.75ID:ygg8X6aa
>>629 コマンドプロンプト 修正版2
https://ideone.com/dXSpSd
もうバグないといいな
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:PlApYvsP
>>629
bash
https://paiza.io/projects/G-t20MSEfsjAnAp0G5v2NA

でもやっぱ遅くてpaiza.ioではtimeoutして最後まで出てこないw
646デフォルトの名無しさん
垢版 |
2019/10/01(火) 21:04:23.70ID:rsBZCnlu
>>629
遅くても構わなければ、PowerShellではとても簡潔に書ける。

$p = 2..10000
while ($p) {
  $p[0]
  $p = @($p |? {$_ % $p[0]})
}
647デフォルトの名無しさん
垢版 |
2019/10/01(火) 21:59:35.52ID:Ueonb/Q5
誰が遅くても構わないと言った
2019/10/01(火) 22:03:29.87ID:x7eW/FrR
お題: ハッシュマップを実装せよ
2019/10/01(火) 22:05:13.75ID:ygg8X6aa
俺が書いたコマンドプロンプトのよりは早いぞw
2019/10/01(火) 22:21:18.49ID:H9NeHROf
>>648
ジェネリックに書くとして、ハッシュ関数はどうやって書けばいいんだ?
std::vector<std::list<T>>> HashMap;
っていう感じのことはできそうではあるけどな。
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
652デフォルトの名無しさん
垢版 |
2019/10/02(水) 12:25:17.61ID:56vpBHGI
それは実装ではない。
2019/10/02(水) 13:20:24.28ID:+RotAwEg
>>648
このスレの住民のレベルに合っていてかつプログラマにとって必要不可欠な知識なので良いお題
2019/10/02(水) 13:31:58.92ID:vkK/4cs1
実装って何を言ってるのかな? コンパイラを作れってこと? それとも基本関数を使ってそれらしいハッシュマップを作れという事?
実装されている言語にさらに実装しろって意味不明。
2019/10/02(水) 14:40:31.57ID:+RotAwEg
ハッシュマップのアルゴリズム部分を自分で書けってことだろ
アスペかよ
2019/10/02(水) 14:58:20.33ID:h9bkbZIX
俺健常者だけど言ってる事正直よくわからんのだが
2019/10/02(水) 15:31:03.84ID:vkK/4cs1
言わんとすることは何となくわかるんだが、多分ジェネリックが有る言語なら比較的考えやすいがジェネリックがない言語ではどう解釈するのかな。
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
2019/10/02(水) 19:48:30.85ID:By3xLmz3
ここの回答に使われる言語でハッシュマップ自分で実装せなあかん言語なんて少ないと思うが?
2019/10/02(水) 20:14:50.09ID:uTylPaUx
ジェネリックなハッシュ関数の書き方が解らない。Orz
661デフォルトの名無しさん
垢版 |
2019/10/02(水) 20:29:20.39ID:OIQKJ8Sl
シリアライズ、文字列化できてればCRC32でも一応ハッシュとして使える
2019/10/02(水) 20:36:10.78ID:uTylPaUx
>>661
小規模な問題解くのにミドルウェアいるんすな。辛い。
663デフォルトの名無しさん
垢版 |
2019/10/02(水) 20:49:55.37ID:OIQKJ8Sl
そんなに汎用的、一般的なのを作る必要もないとおもうので
入力は文字列限定で動くやつ作ればクリアでは?
2019/10/02(水) 21:00:41.50ID:uTylPaUx
>>663
解った文字列やってみるわ。
2019/10/02(水) 21:46:18.99ID:uTylPaUx
>>648
http://coliru.stacked-crooked.com/a/7a42d9f1346c0049
C++。コンストラクタ起動式って17からやったっけ?
とりあえず作ってみたが・・・。
今、調子悪くて困ってる。
2019/10/02(水) 21:48:13.96ID:uTylPaUx
ハッシュ関数は適当。昔2chで見たのパクった。
HMのサイズ7にしておけばよかった。素数だからな。
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
2019/10/02(水) 22:48:58.72ID:2Yo9PRwa
>>661
それかsumでいいやん、conflictしたらリスト管理で一丁上がり
2019/10/02(水) 22:50:04.70ID:XyzGBTdX
>>667
C++
https://ideone.com/M5atpv
2019/10/03(木) 08:18:12.13ID:z1c5xmGq
>>629
> というか、技量の程度が疑わてしまうのでお勧めしない
人の心配する前に自分の出題技量の程度を心配しなよ…
2019/10/04(金) 01:29:13.30ID:rw3arA+q
いいじゃねーかそんなこまけーことどうでも
ケツの穴のちいせぇやろうだな。
何ならおじさんが広げてやろうかw
2019/10/04(金) 01:59:12.37ID:0BDgocBX
アッー!
2019/10/04(金) 04:07:06.69ID:/Ff7i02R
>>620
https://ideone.com/UUNc5X
C++。多分できた。
バグの原因は変数がマイナスを扱えていないことだった。
2019/10/04(金) 14:06:50.47ID:IeSaX57c
>>629
の出題意図を読み取れば、
記憶域を余り自由に使えない環境で
如何に工夫して目的が達成できるか
ということではないかと
その意味では、Power-shellは少し
強力杉だから除外すべきだったかも
知れないが(遅いから使われる
ことは少ないだろけどスクリプト言
語処理系であるとも言えなくもないし)
2019/10/04(金) 14:58:22.06ID:BEYT4ZYw
シェルスクリプトって元々プログラミング言語じゃないからな。 あくまでも補助的なもの。
それでプログラミングすると言うのは本末転倒。 間違った方向性でしかない。

貧弱な環境でも使えるものと言うなら、BASIC や、Python の組込型がコンパクト。 PIC や子供のおもちゃにすら入ってる。 百円のチップにすら入ってるからな。

コンパイラでも良いのならCが最もシンプル。
2019/10/04(金) 17:29:00.38ID:uYF9K7e8
またプログラム言語のオレオレ定義かよw
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
2019/10/05(土) 00:51:48.39ID:pioYL/z5
空っぽのほうが夢詰め込めるぞ
2019/10/05(土) 01:36:41.50ID:iITy9V8b
空っぽかと思ったら、実は分厚い頭蓋骨が詰まった中心に
ポツンとノミのような脳みそがある、石頭だったでごじゃる
684637
垢版 |
2019/10/05(土) 08:57:02.16ID:4K3q4mZL
>>629 コマンドプロンプト 高速化版
https://ideone.com/bJ1lnD
>>642の6倍くらい速くなった…うちの環境だと>>646よりはやくなったどーw
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
2019/10/05(土) 15:21:16.04ID:6iFRuM3K
>>685 実行結果、貼りそこなって変な改行は入ってた…orz 訂正

実行結果
$ bash 15_629_prime.sh
2
3
5
7

9941
9949
9967
9973
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
2019/10/05(土) 16:09:49.40ID:6iFRuM3K
>>629 >>687の実行結果
https://ideone.com/3RCc5k
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番目の要素に空文字を設定しておいて
それを配列のインデックスとして使い、あまりいい書き方じゃないと気がついた
動いているんで、あせって直さないでおくけど ゴメンね〜
690デフォルトの名無しさん
垢版 |
2019/10/05(土) 20:48:42.33ID:oVPf95FK
お題:
https://regexcrossword.com/playerpuzzles/59e565c95008d
のようなHEXマスの正規表現クロスワードパズルのソルバーを実装せよ。
n=1でいいので処理時間も報告せよ。
2019/10/05(土) 21:56:27.55ID:Lt/DoxvR
>>690
辞書データぷりーず
2019/10/05(土) 22:00:12.06ID:4K3q4mZL
このソルバーに辞書データっているか?
2019/10/05(土) 22:27:44.93ID:NXndjuW4
>>691
出題者ではないが、まず、完成図面を作って、そこから問題を作ったほうが早そうだ。
ヘックスの扱い方わからねーんだ俺。
昔聞いたことあるけど、そのうち・・・と思ってたら曖昧になってしまった。
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' => {}
 }
}
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
697デフォルトの名無しさん
垢版 |
2019/10/06(日) 05:55:18.89ID:vrVeYjyl
>>696
最後のやつが4ではなく3?
それと文字はabc使っているが、どういう規則で並べるのか?
2019/10/06(日) 05:58:05.67ID:lJB/egMg
カオス
699675
垢版 |
2019/10/06(日) 09:02:51.40ID:O+kT1S2P
最後は4だろ
2019/10/06(日) 09:24:22.51ID:+7MXB6fE
>>697
おそらく1のパターンのL字を4つで向きを変えてくっつけて大きなL字にしたものが2のパターン。2を4つ使って同じことをやって3を作ってるということだと思う。愚直に再帰的にやれば簡単そう。
2019/10/06(日) 10:20:09.68ID:tnh9RMO0
>>696
入力3の出力、一か所間違えとるよな?w
2019/10/06(日) 10:43:36.50ID:tnh9RMO0
>>696 Java
https://ideone.com/31a8Ky
2019/10/06(日) 17:34:25.93ID:kRqXlweR
お題: プログラム実行後にプログラム自身を削除するプログラムを作れ
実行内容は以下のメッセージを出力する
「このプログラムが起動するのは一度きりである。実行ののち、消去される。」
2019/10/06(日) 17:53:36.15ID:VH97tuta
>>703
echo このプログラムが起動するのは一度きりである。実行ののち、消去される。
rm -rf /
705675
垢版 |
2019/10/06(日) 18:05:59.73ID:m+CayYCA
>>703 そんな問題は却下。 
どんな問題でもファイルを削除する様な問題は出してはいけない。
ど素人もいるんだからそんな問題は出すべきではない。
2019/10/06(日) 20:06:09.43ID:+aq+gJyQ
>>704
大抵の環境でコマンド通らないんじゃないかそれ
2019/10/06(日) 20:12:57.33ID:XBuBF2Rc
#!/bin/sh
echo このプログラムが起動するのは一度きりである。実行ののち、消去される。
\rm -f $0
2019/10/06(日) 20:16:32.32ID:lJB/egMg
lol $0 じゃなくて / にしてるのかwww
2019/10/06(日) 20:19:37.81ID:bPt7YQEe
>>707みて、できなくはないが、やりたくない気分になった。
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/
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コマンドで送られてきたメールの内容を見る等する。
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;
}
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


嫌なプログラミンッグだな、一歩書き間違がや大参事。
こういうお題はご遠慮願いたいものだ…
2019/10/07(月) 22:32:50.62ID:aU+ghkHH
すまぬ >>713 は題意とは違うな。
プログラムの実行が終了してから削除されるわけか…

>>703 bash

(sleep 4; rm -f $0)&
echo このプログラムが起動するのは一度きりである。実行ののち、消去される。

実行結果
$ bash 15_703.sh
… 数秒後
$ ls -o 15_703.sh
ls: 15_703.sh にアクセスできません: No such file or directory
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
2019/10/07(月) 23:18:10.62ID:Hq5Oz5C1
MSX BASIC
10 print"オハヨウフェルペスクン,コンカイノキミノニンムダガイカリャクナオコノテープハジドウテキニショウメツスル"
20 new
2019/10/07(月) 23:48:42.06ID:ti3U/Qjr
>>703
https://ideone.com/B5bVTK
C++。自分ができるのはここま・・・で・・・だ。。。

うぼぁあああああああ。
2019/10/07(月) 23:54:31.61ID:9cpaLYwd
実行時にexeにロックがかかるから、実行終了を待つsystem関数では消せないんだ、これが。
2019/10/08(火) 00:32:11.48ID:LPLIE15X
拡張子.batはコマンドプロンプトのバッチファイルを表す。
2019/10/08(火) 01:09:42.27ID:LQA6uDl1
https://ideone.com/ABzMBS
C++&.
2019/10/08(火) 01:10:33.04ID:LQA6uDl1
>>720
C++&Windows.
おかしなキーコンビネーションで投稿してしまったが、それは置いといて。
結構な沼だったわ。
2019/10/08(火) 01:14:29.28ID:LQA6uDl1
あ、数秒後にタスクを実行したかったが、分単位にしかならないようだ。
2019/10/08(火) 01:31:36.46ID:YlPtBjRn
どM乙。
2019/10/08(火) 02:43:45.63ID:LQA6uDl1
https://ideone.com/s1OxbV
C++&Windows. 結局バッチ作ってバッチを削除するようにした。
2019/10/08(火) 02:45:57.47ID:LQA6uDl1
C++で書いている意味があまりないなぁ。
頭がこんがらがってくるわ。
2019/10/08(火) 03:07:50.37ID:LQA6uDl1
タスクスケジューラには一個のタスクしか持たせることができません。
タスクスケジューラの健康のために削除タスクと削除タスクをkillするタスクを入れたという欲が出ました。
さて、どうすればよかったのでしょうか・・・。
2019/10/08(火) 03:25:53.77ID:LQA6uDl1
https://ideone.com/8DBn1u
チョットシンプルになった。
けど、ただスケジュールしてバッチファイル作るだけになっちゃった・・・。Orz

ううううううぼぉぉぉおあぁぁぁあああ。。。
2019/10/08(火) 18:18:17.33ID:9WsdIwSr
おしい
2019/10/08(火) 22:43:05.75ID:8UaWwWzr
「インターネットには戦力外通告とかが無いから頭の悪い人がいつまでも打席に立って三振し続ける」
2019/10/09(水) 01:57:50.31ID:vwSn6CxZ
お題: TCPデータグラムが流れてくるのでFINフラグが立っていたら「切断します」と出力せよ
2019/10/10(木) 00:51:51.46ID:P0sO6qGI
>>729
IT分野の実社会では、単価にそれほど差がないのをいいことに
パーフォマンダウンによる差額で利ざやを稼ごうという
商売が横行して、結果としてIT分野が廃れている

だから。こまけーこたー いいんだよ
2019/10/10(木) 19:10:08.63ID:Tobvh7XK
>>703
Windows10で、普通に↓で消せた。
https://ideone.com/j1Glc5
733デフォルトの名無しさん
垢版 |
2019/10/10(木) 19:12:56.39ID:AtKsFWU7
>>690 解けた人いない?
2019/10/10(木) 19:14:39.08ID:0pYFH17C
>>733
手では解いた
総当たり以外に思い浮かばん
735デフォルトの名無しさん
垢版 |
2019/10/10(木) 20:46:59.80ID:78OW/ryc
いやお題はパズルを解けじゃなくてパズルのソルバーの実装だからwww
2019/10/10(木) 21:25:17.60ID:VnnXeZwz
古典的な人工知能の探索アルゴリズムを研究すれば、この程度のソルバーは作れる。
737デフォルトの名無しさん
垢版 |
2019/10/10(木) 21:48:13.15ID:PZRS9XbT
つまり研究しないと作れないってことか。
2019/10/10(木) 23:09:22.63ID:gSAdFsTs
>>735
だから総当たり以外思い浮かばなかったって言ってるだろ
2019/10/11(金) 00:08:49.38ID:1+VMU1fD
>>690
ここの↓にすごい悩んだ。
https://regexcrossword.com/playerpuzzles/5d705a4fbf679
Ambiguousの意味を知らずに・・・・・
740デフォルトの名無しさん
垢版 |
2019/10/11(金) 01:56:11.32ID:H4pwkZny
いや総当たりでも出来たなら貼ってくれや。
別に総当たりでも恥ずかしくもなんともないと思うが…
2019/10/11(金) 08:53:45.55ID:MNDgolhS
貼りたくねえ
総当たり出できたものを他人のために見せる必要性もないし
742デフォルトの名無しさん
垢版 |
2019/10/11(金) 09:03:11.12ID:Cra8acMD
できた!
みせて。
見せたくない!

うーん…
2019/10/11(金) 09:08:21.86ID:pcktkYLP
;フェルマーの最終定理
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
2019/10/11(金) 22:38:20.98ID:hqLUiXPo
>>744
https://ideone.com/pEdgoA
C++。最初サンプルと違う答えになってビビったけど、俺のコードがバグっていた・・・。Orz
2019/10/11(金) 22:44:43.53ID:poa9EnRO
すんごく二項定理っぽい数字の並び方をしてる
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)を流用
2019/10/11(金) 23:53:28.54ID:jSXBX1w1
>>744
これって0~9999じゃなくて任意の2つの数字入力させてとかだと愚直に計算するしかない?
2019/10/12(土) 00:32:58.46ID:Cxdg6QkN
>>748
うまくやれば出来そうだがまだ思いつかん
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} "
2019/10/12(土) 11:07:06.97ID:ewC1g8Dg
いかん。すまん。出力が安価になってしまった。
2019/10/12(土) 11:31:04.69ID:zNYc1jm8
lol
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}}
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;
2019/10/12(土) 13:25:43.66ID:VvSWBOR5
>>748 言われた通りの改定問題

X,Yが与えられる。
X以上Y以下の連続する整数で、数字和の頻度。
もっとも大きい頻度はいくつか。
制約 0 <= X < Y <= 5000億

1) 0 9999 --> 670
  合計18が、670ある。>>744の入力値
2) 1234567 9876543 --> 459034
3) 1 500000000000 --> 20406732610
4) 12345678909 498765432123 --> 20000965162

※Y-Xが MAX5000億なので愚直(力技)はきつい。
※頻度表は"桁数*9"程度あるので、最高値出力のみに変更
2019/10/12(土) 17:47:36.17ID:Nq/Z/R6A
頻度の階差を取った
0~9999だと三角数
0~99999だと三角錐数
になる
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分)程度だった
758デフォルトの名無しさん
垢版 |
2019/10/12(土) 19:36:00.00ID:vBnCHMzu
>>757
すんごい
実行時間もすんごい…
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

もっと減らしたアルゴリズムを考えたい気もするけど、
これで一回投稿
2019/10/12(土) 20:06:37.21ID:hTj/2FIT
>>759
アンカーしくった、>>744 だった…ゴメンね
761744
垢版 |
2019/10/12(土) 20:24:43.33ID:1DgZSjUc
白状すると単にrubyで書きたいだけのお題だったんだけど
(Array#repeated_permutationを使いたいだけ)
みんな色々面白いこと考えるもんだね
2019/10/13(日) 14:56:19.23ID:w8oKE2gz
お題: ストップウォッチを作れ。

最初に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)
2019/10/13(日) 17:38:11.00ID:qg/TNtNV
>>762
https://ideone.com/B1ShSB
C++。ストップウオッチ自体は大分前にC#をパクって作ってあったありあわせだ。
765デフォルトの名無しさん
垢版 |
2019/10/13(日) 21:07:01.46ID:w512EwKm
>>755 C
http://ideone.com/qdx79j
一応Y = LLONG_MAXまでできる、あってるか知らんが
ただのスパゲッティになってしもた
766デフォルトの名無しさん
垢版 |
2019/10/14(月) 01:02:32.87ID:Ws6GlsT+
>>744
Kotlin
https://paiza.io/projects/ci9PwSmxQWwMM4iWRolsyw
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()
}
2019/10/14(月) 07:53:19.70ID:kizbcx2j
お題
2^511-1の真約数をひとつ求める
https://mainichi.jp/articles/20191013/k00/00m/040/245000c
2019/10/14(月) 08:39:26.54ID:6P2fe30E
>>768
そのニュース関係なくね?
2019/10/14(月) 08:53:29.04ID:z/6QW2Tk
実は素数でした
とかいう形?
2019/10/14(月) 09:34:48.23ID:6P2fe30E
>>770
511 = 7 * 73 だから 2^511 - 1 は素数ではない
2019/10/14(月) 09:38:05.24ID:6P2fe30E
というか2^73-1で割り切れる
2019/10/14(月) 15:57:50.03ID:eo8SsHS2
>>771-772
それは 2^511-1 は 2^7-1 でも割り切れることを主張しているのですか?
2019/10/14(月) 16:21:24.99ID:CCU+9UFO
>>773
それ以外にどう読めるんだよアホか
2019/10/14(月) 20:26:24.40ID:ead7I0ur
>>773
2^511-1 = 2進数で1が511個 = 2進数で1111111が73個並んだ形
2^511-1を2^7-1で割ったら2進数で0000001が73個並んだ形
ってことじゃろ
2019/10/14(月) 20:53:54.75ID:O0QR+doO
プログラミングから一気に整数論へダイブ
2019/10/14(月) 21:23:44.39ID:eo8SsHS2
>>774-775
2^{ab}-1 = (2^a-1)(1 + 2a + 2^2a + 2^3a + ... + 2^(b-1)a)
と因数分解できるんですね…
thx a lot.
2019/10/14(月) 22:14:18.19ID:hXRtCJE+
必死に5時間検索しまくったのか・・・
779675
垢版 |
2019/10/15(火) 01:03:22.38ID:LXkkA+L3
もう何処かのチャレンジ問題を議論するスレでも良いのでは?
2019/10/15(火) 01:28:25.21ID:4KtvCQDg
お題: お題スレの過去スレからお題をランダムに選択し出力するプログラムを作成せよ
2019/10/15(火) 15:09:04.02ID:WmSwVXlW
QZの醜態を全部晒すプログラムを作成せよ
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
2019/10/15(火) 16:06:38.33ID:Ogt2CAsV
>>782
くそわろた
2019/10/16(水) 01:16:39.26ID:bAHdrVWX
>>755 python
http://ideone.com/caxm7I

ほぼ典型っぽいので、桁DPで解く。

遊びで (X,Y)=(0, 10^100)を実行してみる
2019/10/16(水) 01:58:29.60ID:OEkTBx4G
あらら仕事にかまけてほったらかしていたら
先こされちゃったな感
2019/10/16(水) 02:04:49.25ID:5tDJE0Z9
QZは自分がキチガイということは全然自覚してないんだろうな
2019/10/16(水) 08:36:01.98ID:Mi1dGaVf
>>786 自覚はあるらしいよ。
2019/10/16(水) 16:11:48.25ID:EcYqpM5S
QZが自身をキチガイだと認識しているのならば、QZはキチガイという言葉の正しい意味を理解していない
2019/10/16(水) 16:58:30.92ID:NsS1/fO1
誰が見てもQZは頭がおかしいよ
2019/10/16(水) 20:10:11.38ID:JF94p0Fe
>>789
どういうところが「頭がおかしい」と思ったのですか?
2019/10/17(木) 01:44:31.12ID:QhHbr34y
>>790
周囲が迷惑している行為や的外れで頓珍漢な言動をした際にそれを指摘しても、分からないから具体的に言えという。普通の人からすれば明らかな場合であろうと。
そして具体的に説明しても、自分はそう感じないから理解しない、納得しないと言い、言動を改めない。

本人の中では論理的整合性がとれた言動なのかも知れないが、周囲からすれば会話ができない困った奴に見える。
2019/10/17(木) 02:01:41.77ID:Wp46MCu9
朝鮮人に特有な行為だね
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に該当するわ
2019/10/17(木) 09:29:19.87ID:yTQXhZUg
複素数の多価関数を何度説明しても理解してなかったし脳に欠陥があるのだろう
2019/10/17(木) 12:35:29.92ID:MLKesy/P
多価関数を理解できなかったのかwww
じゃあリーマン面も分からないだろうな
そんな状態で一丁前に「留数定理」とのたまうから頭おかしい
796デフォルトの名無しさん
垢版 |
2019/10/17(木) 16:53:38.74ID:H8l94EK2
>>744
Kotlin
>>766をほんのちょっと改造
https://paiza.io/projects/K_ZOTIieO38ysksk8P8-sw
2019/10/17(木) 19:46:20.65ID:LNHzPSkK
>>795
>そんな状態で一丁前に「留数定理」とのたまう
多分、それは「留数定理は忘れた」という文脈以外ではいったことがないと思いますよ

>>794
「何度も」説明を受けた覚えはありませんよ、むしろ意図的に答えを隠されたような隔靴掻痒的なほのめかししかなかったと記憶しています

>>793
問題を明確に指摘された後は、その貼り付けは実施していないのですが

>>794
今はすべてを実数に限定した線形微分方程式ですらとても苦しんでいるので、複素解析/j関数論とかは当分無理だと思います、関数論のいい教科書があれば教えてください
2019/10/17(木) 20:10:25.04ID:Fo0iAhjp
>>797
あれだけ明瞭な説明を受けて理解できないどころかはぐらかされたと感じるならばお前は脳の病気だな
2019/10/17(木) 22:10:55.40ID:lFPJOlZz
5chなんて無駄にマウント取るやつばっかりだから、コテつけてごちゃごちゃ言っても時間の無駄だぞ
袋叩きにあうだけ
800デフォルトの名無しさん
垢版 |
2019/10/18(金) 01:24:53.30ID:RRRrLQ0r
自演擁護乙。
2019/10/18(金) 23:48:51.61ID:981JMrNY
気を取り直していくぞ。

お題: 現在時刻のアナログ時計のSVG画像を出力せよ。丸い外枠と短針と長針だけでいいが、可能なら秒針と文字盤も表示せよ。
2019/10/19(土) 02:49:07.69ID:PZMkyc4n
暇な人向けのお題:なるべく公正な多数決システムを考案せよ。
サンプル:https://ideone.com/Ayr1Az

上記は多数決して、3人サンプルして、じゃんけんする。というプロセスで導き出される。
2019/10/19(土) 18:44:38.13ID:PZMkyc4n
暇な人向けのお題II!
9x9のセルが与えられる。そのセルは磁石である。
真空状態での磁気シミュレーションをして量子コンピュータに近似せよ。

一つの万能ではない方針。
1パス目で相互作用を足し込む。
2パス目で相互作用の蓄積を作用素数で割る。

ライフゲームがヒントになるかもしれない。
2019/10/19(土) 18:45:19.24ID:PZMkyc4n
>>803
なお、自分は物理学も数学も素人である。。。Orz
805デフォルトの名無しさん
垢版 |
2019/10/21(月) 08:37:49.94ID:HKPBZHRe
お題
入力された正整数を漢数字表記にして出力せよ
10の何乗まで対応するかは任せる

514 -> 五百十四
131072 -> 十三万千七十二
90010 -> 九万十
2019/10/21(月) 09:41:08.94ID:5iZNWaQ2
>>805 python

%pip install kanjize
from kanjize import int2kanji, kanji2int
print(int2kanji(123456789))
# 一億二千三百四十五万六千七百八十九
807デフォルトの名無しさん
垢版 |
2019/10/21(月) 09:45:18.93ID:HKPBZHRe
>>806
そんなのあるのか…
2019/10/21(月) 13:26:32.49ID:Yxovtd3S
perlの時代には既に存在した
809デフォルトの名無しさん
垢版 |
2019/10/21(月) 13:31:36.37ID:W7vxtZcq
じゃあunicodeにシュメル文字が収録されたので、それで。
フフフ、ライブラリなんてあるまい
2019/10/21(月) 13:35:10.39ID:ZDMJHUdn
>>809 Python

%pip install sumerianize
from fumerianize import int2sumerian, sumerian2int
print(int2sumerian(123456789))
# ????????????????????????
811デフォルトの名無しさん
垢版 |
2019/10/21(月) 13:39:33.90ID:n9VxwF2L
あんのかよワロタw
2019/10/21(月) 13:45:48.07ID:qqa/WroJ
逆も欲しいな
漢数字を入れるとアラビア数字に変換するプログラム
2019/10/21(月) 13:49:33.49ID:BDK5iYLM
表示できてなくて笑う
814デフォルトの名無しさん
垢版 |
2019/10/21(月) 13:50:52.74ID:hy8thByE
>>805
それと同じお題を以前出した覚えがある。
まあいいか。スレ見に来てる人も変わってるだろうし。
2019/10/21(月) 16:23:33.20ID:5iZNWaQ2
>>813 表示できていないのは見る人がフォントを入れていないからだろ。 不思議でも何でもない。
816デフォルトの名無しさん
垢版 |
2019/10/21(月) 16:37:23.10ID:lI38JOob
>>812
それと同じお題も過去にあったような。双方向で変換ってやつかな。

まだやったことない人なら頭の体操(またはボケ防止)にはなるからやってみると良いと思う。
2019/10/21(月) 17:22:20.45ID:Yxovtd3S
>>812
漢数字変換 - Perl表技集
http://www2u.biglobe.ne.jp/~MAS/perl/waza/kansuji.html

これですな
2019/10/21(月) 20:27:05.91ID:niRnsl0k
実はcpanからお題を決めてるんじゃないかなというのがしばらく続いてたと思う
2019/10/21(月) 22:35:38.51ID:9OcWZn69
ローマ数字との変換、は簡単か
2019/10/21(月) 22:41:08.96ID:tcnN+Hr+
何回か出てる。
2019/10/21(月) 23:57:16.86ID:PlH6WJHg
適当な整数を入力してそれが円周率の何桁目で出てくるか出力せよ。

何桁まで対応するかは任せる。
2019/10/22(火) 00:08:15.75ID:TSqT/b7n
perl だと m/digit/p からの $^{prematch} とかだな
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 桁目
2019/10/22(火) 12:11:07.49ID:wZUXcjF6
あきらかにNP問題だから解く気がしねえ
825デフォルトの名無しさん
垢版 |
2019/10/22(火) 12:40:06.09ID:E1qN728j
じゃあNP問題だと証明しろよ
2019/10/22(火) 13:54:00.39ID:rZX4V0+4
>>823
一度にある桁まで求めておいてから検索するよりも、
ガウス=ルジャンドルのアルゴリズムまたはラマヌジャンの式を使うなどして
下の桁まで収束を進めながら検索してゆく方が面白かったかな
2019/10/22(火) 16:09:06.09ID:0ZM3PvBa
>>825
キチガイすぎて草
828デフォルトの名無しさん
垢版 |
2019/10/22(火) 19:15:47.41ID:/ue0mcGS
ぬるぽ問題
2019/10/22(火) 19:35:05.18ID:JpCkwFny
じゃあそれにしよう。

適当な文章を入力して縦横斜めにぬるぽの3文字が入っていればガッと出力する。
ひらがなだけにするかそれ以上の対応をするかは任せる。
2019/10/22(火) 23:37:52.31ID:0ZM3PvBa
>>829 Python

%pip install nurupo
from nurupo import nurupofield
if nurupofield("ぬるぽ")
print("ガッ")
# ガッ
2019/10/23(水) 00:32:58.65ID:65oBAktI
pythonなんでも揃ってんな・・・
2019/10/23(水) 20:25:56.13ID:LcbXQT4h
お題:整数配列の奇数要素のみをソートした配列を返す処理を書いてください

入力例:[6, 5, 4, 3, 2, 1]
出力例:[6, 1, 4, 3, 2, 5]
2019/10/23(水) 20:53:09.53ID:oBmkNBH8
>>832 octave
https://ideone.com/W2Q4NP
2019/10/23(水) 20:53:23.91ID:65oBAktI
奇数だけ抜き出した配列作成→ソート→元の配列の奇数の位置にソートした配列の要素を入れてくだけで良さそう
2019/10/23(水) 20:54:52.29ID:oBmkNBH8
あ、ダメだこれw
失礼しました
836833
垢版 |
2019/10/23(水) 21:05:23.34ID:oBmkNBH8
>>832 octave
https://ideone.com/F0JmMT
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)
838デフォルトの名無しさん
垢版 |
2019/10/24(木) 08:28:31.82ID:5RTZY+Zo
>>832 J
f =: 3 : 0
a =. I. 2 | y
b =. /:~ a { y
b (a) } y
)

f 6 5 4 3 2 1
6 1 4 3 2 5
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]
2019/10/24(木) 09:51:53.30ID:76TAYxNw
>>839 Ruby 2.6.0
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]
842デフォルトの名無しさん
垢版 |
2019/10/24(木) 15:41:34.92ID:gElHX+jG
>>832
Kotlin
https://paiza.io/projects/RXWCx9-WsZvakBKGgIo1UA

やり方は >>834 に書かれている通り。

しかし、もっとスマートな方法はないものか?
ありそうだが思い浮かばない。
2019/10/24(木) 16:54:57.81ID:ZpMPcQ0n
>>842
配列コピーしない場合奇数が出たらその後の要素を見て一番小さい奇数と要素の交換でもどう?
配列のコピー不要や。
2019/10/24(木) 21:24:20.41ID:YtgvOVKx
>>832 ruby
https://ideone.com/EUWgwy

>>832 ocaml
https://ideone.com/6SktpO
2019/10/24(木) 23:20:25.74ID:33G0+sWg
>>838
さすがJニキ、さっぱりわからん…
846デフォルトの名無しさん
垢版 |
2019/10/25(金) 00:26:52.21ID:GgLEjF73
アプリ作成したいのですが、素人なのでどなたか相談に乗ってください。

飲み物が入ったコップを定期的に重量を量り、
そのデータを無線で受信してサーバーで記録し
プロットするアプリを作りたいです。

また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計量 電子天秤 有線 計量センサー
849デフォルトの名無しさん
垢版 |
2019/10/25(金) 03:57:48.67ID:uJcHRouN
やり方わからないんだけど、カメラで撮影して映像解析して量が分かるのであればスマホやタブレット用のアプリでできそうだよね。
(PCに小さいカメラ付けても良いが)。
2019/10/25(金) 04:08:18.02ID:rztx2iSz
>>848
適切なスレに移動した方がいいぞ
2019/10/25(金) 09:43:45.15ID:C/odSq3f
センサーの話題などは、Linux 板のラズパイのスレで聞けば?
2019/10/25(金) 09:56:31.28ID:VVjeWd6A
>>848
適当なIoTの計り買えば解決
実装はCだろうな
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
854デフォルトの名無しさん
垢版 |
2019/10/25(金) 12:30:51.02ID:GgLEjF73
>> 849 , 850, 851, 852
情報ありがとうございます。

スレチだったみたいで申し訳ないです。
センサーありきなので、Raspiは使わないと思うのですが
板覗いてみます。
2019/10/25(金) 14:59:52.83ID:ylwTeYJx
>>832
https://ideone.com/FKifBY
C++。クイックソート書けないので謎のソートでお茶を濁す。
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
2019/10/26(土) 07:11:59.41ID:I0XoRu/q
お題:>>832 に「偶数要素は2で割って降順ソート」という要件を追加してください
すでに回答済みの場合は最少限の変更でのご対応で腕(もしくは言語のポテンシャル)を見せてください
2019/10/26(土) 07:27:04.95ID:I0XoRu/q
>>858
入力例:[0, 9, 8, 4, 6, 5, 1, 2, 7, 3]
出力例:[4, 1, 3, 2, 1, 3, 5, 0, 7, 9]
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) "
2019/10/26(土) 11:03:35.88ID:/Rj6VhaF
>>860
×835 → ○>>858
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)
2019/10/26(土) 12:12:03.02ID:Zgyrlv2c
>>832,858
@Mathematica

https://ideone.com/0UFN7o
864デフォルトの名無しさん
垢版 |
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
  }
}
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}
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]
867デフォルトの名無しさん
垢版 |
2019/10/26(土) 20:25:43.01ID:XXeS+kK0
>>858 c
https://ideone.com/g7IC5E
2019/10/26(土) 22:02:49.24ID:+YWUVQNg
>>856
https://ideone.com/lw7uIj
C++。なんか表示位置ずれるなーと思ったら、「()」これ半角じゃねーか。
そのせいで、プログラムが持ってる長さと表示の長さが合わなかった。

しかし、汚くなった無し、思ったより時間がかかってしまった。
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
2019/10/26(土) 22:21:47.70ID:+YWUVQNg
>>858
https://ideone.com/7vsaej
C++。前のヤツに関数足した。
オーダーが倍になったが改修だとこんなもんだ。
2019/10/26(土) 22:38:02.04ID:Q5f3+aYX
お題: あるフォルダ(例えばC:\Windows)についてフォルダの階層構造を木構造(tree)を表すテキストとして出力せよ。

インデントでもいい。罫線を使ってもいい。
872デフォルトの名無しさん
垢版 |
2019/10/26(土) 22:38:38.76ID:T/HAOzs9
tree
2019/10/26(土) 22:46:14.97ID:a/Ne+y1n
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
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 ", ") + "]"
2019/10/27(日) 21:46:52.77ID:JAeIkS65
>>858 c
https://ideone.com/SwF6Zp
882デフォルトの名無しさん
垢版 |
2019/10/28(月) 14:33:15.95ID:kjzN6NI8
>>858-859
Haxe で、

https://try.haxe.org/#Bb813
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))
2019/10/28(月) 22:20:53.11ID:9dus/Ppg
Linuxにこんなコマンドあんのかよお?

https://www.adminweb.jp/command/file/index2.html
885デフォルトの名無しさん
垢版 |
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"
2019/10/28(月) 23:08:40.85ID:F/Wh8ChL
>>884
100年前からあるよ
2019/10/28(月) 23:13:15.22ID:uBs49FGp
色わけもされているのが良くあり、たいへん見やすい
2019/10/29(火) 01:01:17.43ID:CdNgVa0z
お題: 平面(0, 0)-(100,100)上に点を100個、配置する。k-means法を用いて点の集合を3つのグループに分け、それらを図示せよ。
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 } # 偶数・奇数
2019/10/29(火) 11:11:57.21ID:8fHMSau6
やっぱり初心者にはまず黒い画面のCUIからやらせたほうがいいな
2019/10/29(火) 18:19:47.29ID:BWleRN1J
設定で白い画面にすると心が和らぐかも知れない
2019/10/29(火) 18:42:27.40ID:plxF2L4V
目がクラッシュ
2019/10/29(火) 21:04:32.22ID:OodB9NB8
日本標準時2100に起動し、Web上から文字列「惣流・アスカ・ラングレー」を含む.jpgファイルもしくは.jpegあるいは.pingファイルをC:秘蔵に1GB分保存するコードを教えてください
894デフォルトの名無しさん
垢版 |
2019/10/29(火) 21:19:03.11ID:zdS42c06
式波だろオッサン
2019/10/29(火) 22:05:19.10ID:xXVEd4hK
>>893
0 21 * * * sudo less BigWeb | grep アスラン・ザラ > home/C/H_file limit 1GB
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
2019/10/30(水) 00:58:38.18ID:VQ6oDJg7
pingファイルわらた
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
900デフォルトの名無しさん
垢版 |
2019/11/01(金) 23:58:48.16ID:Yq8XY12s
a^n = b^x を解く問題でいいじゃん
2019/11/02(土) 13:25:33.62ID:OyXmLdGY
>>899
演算子^は、左結合、それとも右結合?
2019/11/02(土) 14:21:37.47ID:ZDjpW1U6
>>901
右結合です
a^b^c => a^(b^c)
無論 ^はべき乗の演算子です。
2019/11/02(土) 16:24:06.83ID:3ZL9CX49
10^1〜10^10で二分探索を繰り返しかな?
2019/11/02(土) 17:38:05.70ID:q/Mbih9P
>>899
https://ideone.com/0Xqylu
C++。あってるか知らんけど、知識を動員して解いてみたんだけど、あってる?
三の3乗を6回やったら、doubleでinfになるので解けねーわ。うわわーん。
2019/11/02(土) 18:12:47.84ID:41WzS7Cc
>>904
コード一切読んでないけどお前のは間違ってると思うよ
2019/11/02(土) 18:39:57.30ID:q/Mbih9P
>>905
意味が解らん。
まぁ、いいけど。
907デフォルトの名無しさん
垢版 |
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)
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)
2019/11/03(日) 00:32:05.95ID:ORedds2P
偶数の場合は半分に、奇数の場合は3倍して1加算して結果が1になるまでその数値を出力してください。

1まで出力して完了です。

単純だけど、どこまで短く書ける?
2019/11/03(日) 00:36:48.03ID:ZBjdhNSI
>>909
コラッツ予想はもうおなかいっぱいだわ
911デフォルトの名無しさん
垢版 |
2019/11/03(日) 12:57:12.82ID:ax9Okew1
コラッて怒れば良いんじゃないかな
2019/11/03(日) 13:57:01.56ID:mZU6qafh
>>909
https://ideone.com/JsckiH
C++。ショートコーダじゃないから短めに書いて、24行。
2019/11/03(日) 15:49:54.73ID:kVBOYkVG
>>909
C#
https://ideone.com/unj3KD
短く書こうとする気すらないw
914デフォルトの名無しさん
垢版 |
2019/11/03(日) 18:50:15.71ID:6KV8hNPc
縦と横のサイズが与えられるのでアスペクト比を求めよ
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)
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]
2019/11/04(月) 10:20:33.30ID:xKwnPcPn
数列和好きだね これで何回目だ?
数列和求めて何か嬉しいのか? 簡易計算ミスを防げるとか
2019/11/04(月) 10:51:39.60ID:FzGFhotx
>>917 perl
なんの捻りもない

use List::Util qw(sum);
print join",",(grep{sum(split//)==12}(1..100));
2019/11/04(月) 12:37:41.26ID:7wrIz40y
>>918
数列和?
いきなりオレオレ用語で語られても困るw
2019/11/04(月) 14:30:03.94ID:obVJwnOe
>>917
https://ideone.com/pWqVPQ
C++。割といつも通りという感じ。
2019/11/04(月) 19:33:38.63ID:xKwnPcPn
タイポ
数字和 >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
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;
}
925デフォルトの名無しさん
垢版 |
2019/11/05(火) 01:53:14.53ID:gnRgB6kn
>>909
Kotlin
https://paiza.io/projects/P-_x81NFh0Pq-Fu6FgHHQg

肝心な部分は短いよな・・・
926デフォルトの名無しさん
垢版 |
2019/11/05(火) 20:14:32.31ID:e+hxAdfR
お題:グラフの最長距離探索プログラムを作りなさい。分からなければダイクストラの最短距離探索プログラムを改造して作りなさい。
2019/11/05(火) 20:40:24.45ID:3L71zPwH
>>926
全探索になるから辛い。
X以上になったら打ち切りとかできないし、枝がX個以上なら切るとかもできない。
2019/11/05(火) 21:02:19.16ID:3L71zPwH
枝じゃなかった。支点だった。
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)
930デフォルトの名無しさん
垢版 |
2019/11/07(木) 19:42:24.48ID:wJeAdMrJ
>>917
Kotlin
https://paiza.io/projects/sCUo-pxCCvYRSj_y9LA9Qg

ひねりなし。
931デフォルトの名無しさん
垢版 |
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;
}
932デフォルトの名無しさん
垢版 |
2019/11/10(日) 21:37:46.78ID:OK7x/7YO
文字コードがシフトJISでもUnicodeでも3つ以上の連番となる文字列(最長一致)を、
コード範囲とともにすべて表示せよ。例えば、それらのうちの1つに関する表示は、

824F..8258
FF10..FF19
01234566789

となる。なお、シフトJISには機種依存文字を含んで構わない。
2019/11/10(日) 21:57:20.43ID:uvNl/eaa
>>932
何を以って同じ文字とみなすのか定義しろ
934デフォルトの名無しさん
垢版 |
2019/11/10(日) 22:09:53.56ID:OK7x/7YO
>>933
それも機種依存で構わない。規格上の厳密さにこだわる必要はない。
2019/11/10(日) 23:26:27.72ID:EkgZPBq1
>>932 Java
https://ideone.com/GLDM9a

これでいいのけ?
2019/11/11(月) 00:44:57.23ID:VmjibYtT
バイナリファイルの高速コンペア
2019/11/11(月) 18:33:43.09ID:KK646YuM
>>936
メモリに二つとも呼んでfor回す。意外は難しい気がする。
2019/11/11(月) 19:03:14.97ID:KK646YuM
>>917
https://ideone.com/eVgFHk
C++。一回解いたけど再考して配列一個潰した。
5秒で5000万位解けそう??
2019/11/11(月) 22:23:08.18ID:ySONYK72
>>936
単に一致不一致だけわかればいいのか?
とか
コンペアするファイルは2つだけなのか?
とか

単に2つのファイルの一致不一致を見るだけなら基本>>937の言う通りだと思う
940デフォルトの名無しさん
垢版 |
2019/11/11(月) 22:37:18.90ID:hxYpUSvR
>>935
正解。Windowsには機種依存文字

8754..875D
2160..2169
TUVWXYZ[\]

などもあるが、機種依存文字を含んでも構わないという出題だったので、
含まなくてもOK。
941デフォルトの名無しさん
垢版 |
2019/11/12(火) 05:31:26.51ID:oeG9wEYf
お題

スレ立てるまでもない質問はここで 152匹目
https://mevius.5ch.net/test/read.cgi/tech/1573214616/
の3番の問題を勝手に解く
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だと古いやつなんやな
943デフォルトの名無しさん
垢版 |
2019/11/12(火) 21:37:48.42ID:+gLjUv3x
>>941
処理データ量が少なく計算効率を考慮しなくて良いなら、Rで簡潔に書ける。
https://ideone.com/cRvth9

効率が求められるなら、Cで二分探索の変形版だな。
https://ideone.com/FXQQjq
944デフォルトの名無しさん
垢版 |
2019/11/12(火) 22:38:04.89ID:SyoIDDRx
windowsのロングパス対応の重複ファイル検索するコードない?
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 "
2019/11/13(水) 14:07:45.70ID:9sxFrKBI
>>941
https://ideone.com/wJ8lPk
C++。多分動いてるけど、境界線系のエラーハンドリングは適当。
2019/11/13(水) 15:30:27.12ID:EqcpRCSG
どう考えても線形探索の方が簡単で速い
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
2019/11/13(水) 20:03:11.45ID:ESFhNQze
>>944
https://mevius.5ch.net/test/read.cgi/tech/1434079972/53
2019/11/13(水) 20:28:42.98ID:6mLuLK4e
>>941 octave
https://ideone.com/kbVTGp
951デフォルトの名無しさん
垢版 |
2019/11/13(水) 20:40:25.65ID:H1DP2m/6
>>944
>>1002
952デフォルトの名無しさん
垢版 |
2019/11/13(水) 20:48:13.08ID:CMaH4qd1
>>941
C++ならSTLのequal_rangeを使えば、二分探索のコードを自前で書かずに済む。
https://ideone.com/KJ134u

この例の条件でしか判定しないなら、5つの定数値との比較にするのが一番簡単で
速そうだな。
https://ideone.com/ef553N
2019/11/13(水) 21:39:03.09ID:Fqkv69gY
なんで順番に5回も比較してんの?
2019/11/13(水) 21:47:59.14ID:kE3A4AyF
10回比較するわけにはいかないからでしょ
2019/11/13(水) 21:53:11.46ID:RzCRvdkP
まずは199との比較では?
あとは範囲を絞ったテーブルとか

int全てをカバーするテーブルも
intが32bitな64bit環境なら一応は可能
2019/11/13(水) 22:09:59.79ID:SHPlbPC2
お題: 自動塗り絵。

白地に黒い線で図形が描かれているモノクロ画像が与えられる。
白い領域をそれぞれ適当な単色で塗りつぶせ。可能ならOpenCVを使ってもいい。
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 への
回答としては、最も適している。
2019/11/13(水) 23:40:49.81ID:RzCRvdkP
一番速くもないし一番簡単でもない

一番「簡単で速い」?
簡単と速いは相反するので一番なんて無い
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
2019/11/14(木) 09:31:40.70ID:baSi3t2K
一番簡単で速いってなんだよ
一番簡単かつ一番速いなら一番速いって言えばいいだけだろ
ってC++の人かよ
2019/11/14(木) 12:32:18.21ID:WVE0j82D
一番に過剰反応してるみなさんwww
2019/11/14(木) 13:14:51.59ID:/NpdgKVA
一番とか最も適しているとか
頭が悪いやつが良く言うセリフ
2019/11/14(木) 13:27:39.39ID:isT1FYJS
それな
あと「頭悪いやつがよく言う」ってのも頭悪いやつよく言うセリフだわ
2019/11/14(木) 15:14:06.76ID:1CVvHcAw
>>941 python

https://ideone.com/g2dWOw
2019/11/14(木) 16:23:41.28ID:bZ2yXVXr
>>963
俺、よくmakehoge書いてる人だけど、その二分探査書いた人は別人。
偶に、俺じゃない人がC++書いてくことがある。
まぁ、俺も貢献度が高いかというと解らんけど。
969デフォルトの名無しさん
垢版 |
2019/11/14(木) 22:16:17.11ID:ya/1xYDt
>>963
「一番簡単で速い」は「一番簡単」かつ「速い」という意味だよ。
一番簡単なコードを書いてみて充分に速ければ、さらに手を加える必要はないってこと。
昨今はCPUが速いので、簡単なコードをささっと書いて終わりにできる場合が多いし、
Cを使うまでもなくRやPythonなどでも実用に耐える。処理条件が変わって速度に
不満が生じたときだけ、書き直せば良い。
2019/11/14(木) 22:21:25.20ID:KjmBL3+S
配列をキャッシュに乗せるだけで早くなる
配列にするだけで早くなる
971デフォルトの名無しさん
垢版 |
2019/11/14(木) 23:43:50.36ID:ya/1xYDt
>>970
>>941の最も近い値を求める処理(Aと呼ぶ)だけを複数回連続して行う場合はそうだが、
間に別の処理(Bと呼ぶ)がたくさん入る場合はキャッシュから外れるかも知れないし、
AよりもBの方で相対的にだいぶ長い時間がかかっているならば、Aを高速化する
意味はない。

Aを簡単に書き終え、Bを書き進めてプログラム全体を完成させ、各部分の実行時間を
デバッガで分析し、Aを高速化する必要があるか判定するのが効率的な開発方法。
必要なときだけAを書き直してみて、元のAと実行時間を比較し、顕著に速い場合だけ
採用する。あまり変わらない場合は元の簡単な方に戻す。
2019/11/15(金) 06:08:37.20ID:/dDy1LQy
>>969
なぜ
一番簡単
だと思ったのか
2019/11/15(金) 06:11:01.44ID:/dDy1LQy
中途半端に最適化するくらいなら
意味通りをそのまま記述した方が良いよ

トリッキーなマクロとか使わないで普通にループでいいし
974デフォルトの名無しさん
垢版 |
2019/11/15(金) 07:24:03.38ID:YlbiRAmO
>>941 J

f =: 4 : 0
{. x /: | x - y
)

a =: 98 100 198 200 250 298
a f 199
198
2019/11/15(金) 08:39:52.88ID:zGnI3whh
>>491 python
整数の範囲を 1000000000 にして、リストのサイズをその1/10の 100000000 にしてやった物

https://ideone.com/JL4ZtG
2019/11/15(金) 08:46:57.30ID:pd2oXw5y
お題はどれ?
2019/11/15(金) 10:34:11.71ID:zGnI3whh
>>975 は、>>941 のお題の間違い。
2019/11/15(金) 10:34:39.11ID:kGxI2dsU
>>972
もっと簡単なのがあると言うなら提示すりゃいいだけ
2019/11/15(金) 10:37:36.49ID:Dg2kwGpJ
そんなら一番簡単なんて言ったもん勝ちやんアホクサ
2019/11/15(金) 11:19:40.93ID:y6ix6SXf
>>979
どういうこと?
2019/11/15(金) 13:20:35.16ID:pd2oXw5y
発言者に証明責任がある
当たり前
2019/11/15(金) 13:22:00.36ID:pd2oXw5y
簡単じゃない部分は書いたけどね
2019/11/15(金) 13:25:38.61ID:pd2oXw5y
本当に一番簡単だと思ってるなら
非常に頭が弱い
というしかない
2019/11/15(金) 16:04:20.43ID:y6ix6SXf
証明責任が
985デフォルトの名無しさん
垢版 |
2019/11/15(金) 18:45:17.65ID:YlbiRAmO
>>941 Ruby

def f(a,x)
a.min_by{|v|(v-x).abs}
end
2019/11/15(金) 22:18:10.52ID:1XAUh39O
>>982
ひょっとして>>973か?
頓珍漢な指摘でドヤられても困るw
2019/11/16(土) 07:59:12.18ID:PKd8UO5d
お前ちょっとしつこいよ
二人ともどっか行ってくれ
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']
2019/11/16(土) 09:39:44.99ID:R3eXoa4h
>>988
URL訂正: https://www.cs.cmu.edu/~rgs/alice-I.html
99010-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}
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']
2019/11/16(土) 14:12:37.63ID:wI2tFyzM
そろそろ次スレ
993デフォルトの名無しさん
垢版 |
2019/11/16(土) 20:00:42.94ID:ycfnvugG
>>987
誤解がないように一応言っておくが、同一人物なのは943, 952, 958, 969, 971, 993だけで、
978や986は別人ね。
2019/11/16(土) 20:11:13.21ID:SjIOWxyj
どうでもいい
匿名掲示板
2019/11/16(土) 22:09:51.31ID:ByTTIV4m
>>988
@Mathematica

https://ideone.com/3Ad2Nv
2019/11/17(日) 09:01:36.94ID:xqEdXdr6
次スレ

プログラミングのお題スレ Part16
http://mevius.5ch.net/test/read.cgi/tech/1573948822/
997990
垢版 |
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]
998デフォルトの名無しさん
垢版 |
2019/11/21(木) 12:06:42.30ID:p+kY48sO
>>941 julia
a=[98,100,198,200,250,298]
f(a,x)=a[argmin(map(abs ,a.-x))]
f(a,50)
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 "
2019/11/21(木) 20:01:07.49ID:KAM+noJg
はかい
こうせん
せんもんがっこう
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 116日 0時間 21分 10秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況