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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
175
(3): 2020/08/04(火)20:26 ID:BW/Lg1/b(1) AAS
>>166
この魔法が気になる
176: 蟻人間 ◆T6xkBnTXz7B0 2020/08/04(火)20:33 ID:pnjegpbT(1/3) AAS
>>175
奇数ならば最下位ビットが1であることを利用している。
177: 2020/08/04(火)20:43 ID:ZgraBKAX(1) AAS
筆算じゃないの

101 b
110 a (+
---------
0
1010
10100
---------
11110
178: 蟻人間 ◆T6xkBnTXz7B0 2020/08/04(火)20:47 ID:pnjegpbT(2/3) AAS
お題: 総務省統計局の1990〜2019年までの人口データを使用して2020〜2024年の日本の人口の推計値を求めよ。人口データ以外は使用しないものとする。
179: 蟻人間 ◆T6xkBnTXz7B0 2020/08/04(火)21:14 ID:pnjegpbT(3/3) AAS
これは電子政府の使い勝手のテストである。だれも解けないなら、電子データは活かされていないと判断する。
180: 2020/08/04(火)21:16 ID:02jYvMNw(1/2) AAS
>>175
aの偶奇によって↓の計算してaがちっちゃくなったら終わりってしてるだけだぞ

(2a' + 1)b = b + a' * (2b)
(2a') * b = a' * (2b)
181: 2020/08/04(火)21:26 ID:lImhU2CT(3/3) AAS
チューリングマシンを使って重くて複雑な乗算を再現して何の意味があるのかと思ってそうだな
ポイントは文法の中に演算を組み込める点
実社会に役に立つ具体的な例を挙げろと言われれば直ぐには思いつかないが、オートマトンの入力は文字列だけとは限らないぞ
有限木オートマトン使って静的コード解析なのか最適化なのかは分からんが、開発言語の構文木に何らかの演算が伴うルールを適用したいこともあるかもしれない
「そんなのプログラミングすればいいだけだろ」と言う声が聞こえてきそうだがそれは極論「正規表現など要らん」と言ってるのと同じだと思う
以上でもって「全てのプログラマはオートマトンとチューリングマシンをよく勉強するべき」とする俺の主張の正当性は認められる
ちなみに俺は10年以上機械学習の勉強をしたのに画期的な成果が出せなかった後悔の思いがあるから言っている
182: 2020/08/04(火)21:58 ID:JHqDXk92(1) AAS
お題を出して解くスレで電子データは活かされていないとかどうでもいいんですが…
なんでそうやっていつもスレ趣旨からずれようとするのか?
ズレたいならよそでやってくれ
183: 2020/08/04(火)22:11 ID:02jYvMNw(2/2) AAS
片山博文MZ◆NveQN6OtcI
184
(4): 2020/08/04(火)23:36 ID:L0dS0CTZ(1) AAS
お題
両替をしてください
貨幣は次の文字列で表されます
1円 = (1)
5円 = (5)
10円 = (10)
50円 = (50)
100円 = (100)
500円 = (500)


省4
185: 2020/08/05(水)00:05 ID:DlE2lfwB(1/2) AAS
書きたいけど寝たい
186: 2020/08/05(水)02:29 ID:prJIGLTT(1/4) AAS
>>175
aが2とか4だったらどうなるかを紙にでも書いて考えればいずれわかると思う。
187: 2020/08/05(水)02:55 ID:wv4r4oF2(1/2) AAS
>>184 Ruby
def change( coin )
sum = coin.split(/[^\d]+/)[1..].inject(0){|r,c| r + c.to_i }
ret = ''
[500,100,50,10,5,1].each{|c|
next unless sum >= c
r, sum = sum.divmod( c )
ret << "(#{c})" * r
}
ret
省6
188
(1): 2020/08/05(水)11:37 ID:kVNaCqIg(1) AAS
File "C:\Users\NEC-PCuser\.spyder-py3\temp.py", line 23, in <module>
my_data = genfromtxt('SingleECG.csv')

File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\npyio.py", line 1772, in genfromtxt
fid = np.lib._datasource.open(fname, 'rt', encoding=encoding)

File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\_datasource.py", line 269, in open
return ds.open(path, mode, encoding=encoding, newline=newline)

File "C:\Users\NEC-PCuser\anaconda3\lib\site-packages\numpy\lib\_datasource.py", line 623, in open
raise IOError("%s not found." % path)

グラフをプロットしたらこのエラーが出ました。対処法を教えてください
189: 2020/08/05(水)12:05 ID:DlE2lfwB(2/2) AAS
斬新なお題だなNEC-PCuserさん
190: 2020/08/05(水)12:16 ID:IZQzbQjk(1) AAS
>>188<対処法を教えるお題
一行目と最後の行IOError("%s not found." % path) から
File "C:\Users\NEC-PCuser\.spyder-py3\temp.py"
のパスが間違えていると思われるので
temp.pyを添付するか確認するように進言します
191: 2020/08/05(水)14:35 ID:xKYyZvTf(1) AAS
心電図装置に繋がってるデバイスが機能停止したんだろ
192: 2020/08/05(水)15:30 ID:prJIGLTT(2/4) AAS
>>184
Kotlin
外部リンク:paiza.io

最初は割り算したり余り出したりしてやろうと思ったんだけど、よく考えたらこの場合はその計算は無駄な感じがしたので合計から引けたらその貨幣を出すのを繰り返すようにした。
193: 2020/08/05(水)16:44 ID:73CDpa/5(1) AAS
ふむ。コイン切れの対処もし易いな。
194
(4): 蟻人間 ◆T6xkBnTXz7B0 2020/08/05(水)17:59 ID:TWR5sasY(1) AAS
お題: コイにえさをやるプログラム「feed」がある。一時間ごとにfeedを実行するプログラムを書け。ただし、ビジーウェイトはしてはならない。

ダミーのfeedは、次のようなプログラムとする:

- 現在日時と「えさをやりました。」を出力する。
195: 蟻人間 ◆T6xkBnTXz7B0 2020/08/05(水)18:08 ID:UZ8wPONY(1) AAS
>>194 C++/Win32
#include <windows.h>
int main(void) {
for (;;) {
Sleep(60 * 60 * 1000);
ShellExecuteA(NULL, NULL, "feed.exe", NULL, NULL, SW_SHOWNORMAL);
}
}

// feed.cpp
#include <windows.h>
省8
196: 2020/08/05(水)19:40 ID:VitQNdTl(1) AAS
は、はやい・・・
197: 2020/08/05(水)20:19 ID:wv4r4oF2(2/2) AAS
>>194 Ruby (Windows)
# feed_ignition.rb
loop do
system( 'start "" feed.rb' )
sleep 60*60
end

# feed.rb
puts "#{Time.new.strftime('%Y/%m/%d %T')} えさをやりました。"
sleep 3 # 表示確認用
198
(1): 2020/08/05(水)23:41 ID:prJIGLTT(3/4) AAS
>>194
Linux 等の UNIX系OS だったら普通なら crond が動いているので crontab 設定すると楽だ。
(Windows の場合はタスクの設定で似たような事ができる)。

例えばこのようにすると毎時0分に feed コマンドが実行される。

0 * * * * feed

ただ問題はこのままだと標準出力がリダイレクトされていないのでその出力がcrondからメールで送られて来る事になる。
(見たい場合は mail コマンドを使って見る)。

コマンドラインから直接やるとしたら watch コマンドというのもある。これは実行するたびに出力が変化する
ようなコマンドを定期的に動かしてその出力を画面上に表示するためのコマンドだが毎回出力が同じでも
あるいは何も出力しなかったとしても問題はない。1時間ごとに動かすならこうなる。
省6
199: 2020/08/05(水)23:51 ID:prJIGLTT(4/4) AAS
>>198はfeedで現在の日付を出すのを忘れた。

日付付けるなら例えばこうする。

#!/bin/sh
echo `date` 'えさをやりました。'

date コマンドに任せてしまってこんな風にもできる。(日時は YYYY-MM-DD hh:mm:ss の形式で出る)。

#!/bin/sh
date '+%F %T えさをやりました。'
200
(2): 蟻人間 ◆T6xkBnTXz7B0 2020/08/06(木)18:50 ID:mzjhTFla(1/8) AAS
お題: 現実世界でコイにえさをやるプログラム。

できるのか?
201: 2020/08/06(木)19:02 ID:nx4HEXSE(1/3) AAS
>>200
始めからPLCのプログラム限定って書け>>194
202: 2020/08/06(木)19:06 ID:cHZDAcP7(1) AAS
>>200
プログラムそのものは出力装置に繋がるビットをONにするとかを定期的にやれば良いだけなのでは?
で、ONになったらリレーで餌やり器のスイッチが入ってウイーンとかいって餌が一定量水槽に入る。

ていうか、全部ハードウェアだけででできないか?タイマーICってあったよね確か。
203
(2): 蟻人間 ◆T6xkBnTXz7B0 2020/08/06(木)19:21 ID:mzjhTFla(2/8) AAS
ハードウェアだとソフトウェア制御できない。成長を細かく制御したい。
普通のPCから安価で制御する方法はないのだろうか。
ニシキゴイを20匹ほど飼いたいのだが。
204: 2020/08/06(木)19:23 ID:nx4HEXSE(2/3) AAS
>>203
ピ・タ・ゴ・ラ・スイッチ
205
(1): 2020/08/06(木)19:37 ID:/QKQvkvR(1) AAS
なぜ何度ツッコまれてもスレタイからずれようとするんですか?
学習できないんですか?
206: 蟻人間 ◆T6xkBnTXz7B0 2020/08/06(木)19:46 ID:mzjhTFla(3/8) AAS
>>205
ハードにも興味を持ってくれるといいな、と思って企画しました by 突撃商会
207
(1): 2020/08/06(木)19:58 ID:AWtnj9QL(1) AAS
CDトレイを開閉するソフトを作りそれで餌やり器のボタンを押せ
208: 蟻人間 ◆T6xkBnTXz7B0 2020/08/06(木)20:01 ID:mzjhTFla(4/8) AAS
>>207
正解。次のお題お願いします。
209
(1): 2020/08/06(木)20:18 ID:nx4HEXSE(3/3) AAS
【お題】正解にたどり着くようにアシストした得点を算出するプログラムを作れ
スケールは1点以上100点未満とする
210: 蟻人間 ◆T6xkBnTXz7B0 2020/08/06(木)20:28 ID:mzjhTFla(5/8) AAS
>>209
それは人間しかできないんで内科医?
211: 2020/08/06(木)20:37 ID:sjF+gr/I(1) AAS
クソコテ死ねよマジで
212
(1): 2020/08/06(木)20:53 ID:O/aURmUk(1) AAS
>>203
その手の目的には Raspberry Pi がおすすめです
最近流行っているから多くのノウハウが容易に見つかりますよ
213: 蟻人間 ◆T6xkBnTXz7B0 2020/08/06(木)21:07 ID:mzjhTFla(6/8) AAS
>>212
ありがとうございます。使えそうなハードでかなりお買い得ですね。

三菱やパナソニックは、、、破壊的イノベーションができない連中か。。。
214: 蟻人間 ◆T6xkBnTXz7B0 2020/08/06(木)21:16 ID:mzjhTFla(7/8) AAS
IchigoJamというのもあるみたい。
215
(1): 2020/08/06(木)21:29 ID:8sSWlLgK(1/2) AAS
スレチ
◆QZaw55cn4c はうせろ
216
(1): ◆QZaw55cn4c 2020/08/06(木)22:26 ID:L4WiFaHt(1) AAS
>>215
突然、どうしたのですか?
217: 2020/08/06(木)22:38 ID:8sSWlLgK(2/2) AAS
>>216
呼んでねえよハゲ消えろ
218: 蟻人間 ◆T6xkBnTXz7B0 2020/08/06(木)23:02 ID:mzjhTFla(8/8) AAS
お題: 点結びパズルという簡単なパズルがある。紙の上にたくさんの点があり、それぞれの点の近くに番号が書かれていて、
番号の順に点を結べば、図案が浮かび上がるというものだ。
以下の手順に従ってモノクロPNG画像(300dpi前後)として与えられた点結びパズルを自動的に解くプログラムを作れ。画像処理。

(1) OCR技術や深層学習などにより、画像上の一文字が2mm以上6mm以下のアラビア数字(複数)を読み取り、数字の位置と数字の対を返す関数を作れ。数字の30度以上の回転は考える必要はない。
(2) 点結びパズルの点は直径0.5mm以上3mm以下の黒い丸い点だと仮定して、点と数字を関連付けるアルゴリズムを考案せよ。
ただし、数字に近い点が複数ある場合は「スマートに」割り振ること。
(3) 画像に実際に線分を描画して点結びパズルを回答するプログラムを作れ。
点と数字以外の枠線やタイトルなどは印刷されていないと仮定してもよい。
219: 2020/08/07(金)00:08 ID:TzYKRTqH(1) AAS
よく、ラズパイコンテストでやってる

水槽の中の金魚に、エサをやる装置とか
220: 2020/08/07(金)11:29 ID:uQ4nbdFf(1/4) AAS
債務が多い
221
(15): 2020/08/07(金)12:51 ID:lb7vo/Jy(1) AAS
お題
文字列を大文字小文字を区別せずにソートして()でグルーピングしてください

入力: D a B c d c C A E c e B b
出力: (a A) (B B b) (c c C c) (D d) (E e)
222: 2020/08/07(金)13:43 ID:uQ4nbdFf(2/4) AAS
>>221 js
const inputStr = "D a B c d c C A E c e B b"
const expectedStr = "(a A) (B B b) (c c C c) (D d) (E e)"

const charVal = c => c.toUpperCase().charCodeAt()

function groupCharSort(str) {
const chars = str.split(" ")
const groups = {}
chars.forEach(c => {
const cv = charVal(c)
if (!groups[cv]) groups[cv] = []
省8
223: 2020/08/07(金)13:48 ID:uQ4nbdFf(3/4) AAS
const inputStr = "D a B c d c C A E c e B b"
const expectedStr = "(a A) (B B b) (c c C c) (D d) (E e)"

const charVal = c => c.toUpperCase().charCodeAt()

function groupCharSort(str) {
const chars = str.split(" ")
const groups = []
chars.forEach(c => {
const cv = charVal(c)
if (!groups[cv]) groups[cv] = []
groups[cv].push(c)
省8
224: 2020/08/07(金)14:51 ID:5vmbSLbR(1/2) AAS
>>221 Ruby
# その 1
def igrouping( str )
gList = {}
str.split.each{|ch|
k = ch.downcase
gList[ k ] ||= []
gList[ k ] << ch
}
gList.keys.sort.map{|k| '(' + gList[ k ].join(' ') + ')' }.join(' ')
省4
225: 2020/08/07(金)14:52 ID:5vmbSLbR(2/2) AAS
>>221 Ruby
# その 2
def igrouping( str )
i = 0
'(' + str.split.sort_by{|x| [ x.downcase, i += 1 ] }.join(' ').gsub( /(\w) (?!\1)/i ){"#{$1}) (#{$2}"} + ')'
end

instr = 'D a B c d c C A E c e B b'
puts "入力: #{instr}"
puts "出力: #{igrouping( instr )}"
226: 2020/08/07(金)16:23 ID:uQ4nbdFf(4/4) AAS
<<=って演算子ほしいな
227: 2020/08/07(金)19:28 ID:P4+Ga4Bm(1) AAS
>>221 Ruby

$><<gets.split.group_by{|c| c.ord % 32}.sort.map{|a| "(#{a.last.join ' '})"}.join(' ')

# => (a A) (B B b) (c c C c) (D d) (E e)
228: 2020/08/08(土)00:04 ID:b55CcwAR(1/4) AAS
JavaScript では、Lodash を使うけど、
やっぱり、Ruby の方が、メソッドチェーンできるから良い

Lodash ではたまに「インスタンス.メソッド」の形にならない関数がある。
関数(オブジェクト)の形式

そこで、メソッドチェーンが途切れて、配列が実体化されてしまうから、
サイズと大きいと、ヤバイ
229: 2020/08/08(土)07:24 ID:u/td9dv4(1/2) AAS
lodash破壊的変更の関数あるの地味に謎だよな
一応 lodash/fpもあるけど
230: 2020/08/08(土)07:26 ID:u/td9dv4(2/2) AAS
いや _.chainの話か
一瞬非推奨の流れ来たときから使ってないわ
メソッドチェーン嫌いではないけど
231
(2): 2020/08/08(土)09:18 ID:b55CcwAR(2/4) AAS
>>221
Elixir

input_str = "D a B c d c C A E c e B b"

list = input_str
|> String.split # 文字列を空白で分割して、配列化する
|> Enum.group_by( &String.downcase/1 ) # 小文字へ変換して、グループ化する
|> Map.values # 値を取り出す
|> Enum.map( fn list -> Enum.join( list, " " ) end ) # 各要素を空白でつなげて、1つの文字列にする
|> Enum.map( fn str -> "(" <> str <> ")" end ) # 文字列を、( ) で囲む

# IO.inspect list
省2
232
(4): 2020/08/08(土)14:04 ID:JvTsLjL+(1/3) AAS
>>221
Python3
外部リンク:ideone.com

全然短くならなかったんだけど皆どういう脳みそしてるの
233
(1): 2020/08/08(土)14:58 ID:gFRxrH0y(1) AAS
>>221
perl

$input = "D a B c d c C A E c e B b";
map{push @{$h{uc $_}}, $_}(split / /, $input);
print map{map{"(".(join" ", @$_).")"}$h{$_}} sort{uc $a cmp uc $b} keys %h;

>>232
オブ脳ならぬラムダ脳なんだろうなぁ
同値でグループ化、代表元でソート、出力、これを関数でやってる

それかワンライナーへの偏執的な愛
234: 2020/08/08(土)15:53 ID:xsg1wzC9(1) AAS
>>221 Ruby

gets.split.group_by(&:upcase).sort.map{|_,v|$><<"(#{v*' '}) "}
235
(1): 2020/08/08(土)16:11 ID:yUCBpeXj(1) AAS
>>232
一般論としてデータの処理と最後の文字列の組み立てを一緒にやらない方がいい
今どきPC上ならメモリーは潤沢にあるので
・グルーピングの処理してから
・各グループを文字列化
・さらにその文字列を順次出力
とした方がわかりやすいと思う
外部リンク:ideone.com
236: 2020/08/08(土)17:07 ID:HH2BebFt(1) AAS
>>232
Pythonだとどうしても短くはならないな。
外部リンク:ideone.com
groupbyのところは、defaultdictで書く方法もあるけど大差なし。
237: 2020/08/08(土)21:09 ID:JvTsLjL+(2/3) AAS
>>233
Rubyの人もワンライナーだな
Rubyってショートコーディングに向いてるのかな?

>>235,232
なるほど
238
(1): 2020/08/08(土)21:20 ID:bf+w2Xl6(1) AAS
code golfなら基本はperlで、次点がRubyじゃないですかね
239: 2020/08/08(土)21:56 ID:JvTsLjL+(3/3) AAS
>>238
そういうものなのね
240: 231 2020/08/08(土)22:49 ID:b55CcwAR(3/4) AAS
関数型・メソッドチェーンなら、Ruby・Elixir。
長く、チェーンできるから

Elixir では関数の第一引数を、前のチェーンからの戻り値として渡せる

str = "a b c"

# 文字列を空白で分割して、配列化する
IO.inspect String.split( str )

str
|> String.split
|> IO.inspect
省2
241: 231 2020/08/08(土)22:54 ID:b55CcwAR(4/4) AAS
基本的に、Ruby・Elixir みたいに、
メソッドチェーンで、英語のように、左から右へ読めないとダメ

Python の内包表記みたいなのは、可読性が悪い
242: 2020/08/08(土)23:09 ID:n6UBlQy6(1) AAS
ざっくりとした見た目しか気にしないのでパイプライン演算子と区別がつかないrubyガイジなのであったw
243: 2020/08/08(土)23:14 ID:ifN2bgU4(1/2) AAS
>>184
Java
外部リンク:paiza.io
244: 2020/08/08(土)23:32 ID:ifN2bgU4(2/2) AAS
>>221
Java
外部リンク:paiza.io
245: 2020/08/09(日)00:17 ID:/K790vfJ(1/3) AAS
javaでもStream使うと意外と少なくかけるんだな
utilが充実してるな
246: 2020/08/09(日)00:41 ID:uywZ9h5A(1) AAS
>>184
Python3
外部リンク:ideone.com
247: 2020/08/09(日)02:47 ID:Mt0Kh35r(1) AAS
>>221
c#
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
var input = "D a B c d c C A E c e B b";

foreach (var itm in input.Split(" ").GroupBy(p => p.ToUpper()).OrderBy(p => p.Key))
省5
248: 2020/08/09(日)04:58 ID:bQgrv4ZF(1) AAS
>>221
Kotlin
外部リンク:paiza.io
249
(14): 2020/08/09(日)16:07 ID:HZ7sqguG(1) AAS
お題
文字列abcdeを右に2つ回転するとdeabcとなる
文字列abcdeを左に2つ回転するとcdeabとなる

2つの文字列を入力として受け取り
2つの文字列が一致するか、または、文字列を回転させて一致した場合はtrueを返してください
さもなくばfalseを返してください

入力: abcde deabc
出力: true

入力: abcde cdeba
出力: false
250: 2020/08/09(日)16:42 ID:/K790vfJ(2/3) AAS
>>249 js

const isRotateStr = (a, b) => (a + a).indexOf(b) != -1

console.log(isRotateStr("abcde", "deabc"))
// true

console.log(isRotateStr("abcde", "cdeba"))
// false
251: 2020/08/09(日)16:56 ID:DzMx1xPb(1/2) AAS
問題として狙ってたかしらんけど、いきなり簡単な解法来ちゃったな。
252: 2020/08/09(日)16:59 ID:Uo9rXbdx(1) AAS
aaとaaaを比較したらtrueになっちゃうね
文字サイズを最初にチェックすればいいかな?
253
(74): 253 2020/08/09(日)19:01 ID:UiQUiAYf(1) AAS
>>221 Perl5

push(@{$h{uc$_}}, $_) for qw{D a B c d c C A E c e B b};
print map{"(@{$h{$_}}) "} sort keys %h;

実行結果

~ $ perl 18_221_NCS_sort_grp.pl
(a A) (B B b) (c c C c) (D d) (E e)
254: 253 2020/08/09(日)19:17 ID:A1LNtpwx(1) AAS
>>249 Perl5

use feature qw{signatures say};
sub strot_cmp($a, $b) {
 say "入力 $a $b";
 say "出力 ", "$a$a" =~ /$b/ ? 'true' : 'false';
}
strot_cmp qw{abcde deabc};
strot_cmp qw{abcde cdeba};

実行結果
~ $ perl 18_249_strot_cmp.pl
省5
255: 2020/08/09(日)20:09 ID:sb6ynJ/q(1) AAS
Jニキも披露してくれよ
256: 2020/08/09(日)22:00 ID:BOQzPYI8(1) AAS
>>221 octave
外部リンク:ideone.com

>>249 octave
外部リンク:ideone.com
257
(1): 253 2020/08/09(日)22:27 ID:iNMqPGBy(1) AAS
>>253 それだと「文字列を回転させて一致」のみならず「含まれている」場合もtrueになってしまうので修正

>>249 Perl5
use feature qw{signatures say};
sub strot_cmp($a, $b) {
 say "入力 $a $b";
 @a = "$a$a" =~ /^(.*)($b)(.*)$/;
 say "出力 ", (@a and "$a[2]$a[0]" eq $b) ? 'true' : 'false';
}
strot_cmp qw{abcde deabc};
strot_cmp qw{abcde cdeba};
省10
258: 2020/08/09(日)22:40 ID:/K790vfJ(3/3) AAS
octave文法好みだけど結構古い言語なんだな
259
(1): 253 2020/08/09(日)23:21 ID:dFp53gtH(1) AAS
>>221 Python3

s = "D a B c d c C A E c e B b".split();
d = {}
for c in s:
  u = c.upper()
  if u in d: d[u] += ' ' + c
  else: d[u] = c
ks = sorted(d.keys())
print(' '.join(map(lambda x: '(%s)' % d[x], ks)))

実行結果
省2
260
(2): 2020/08/09(日)23:56 ID:DzMx1xPb(2/2) AAS
Perlだとこの程度でも正規表現使わないといかんのか?
261: 253 2020/08/10(月)00:02 ID:5Aj+dIHX(1/2) AAS
>>259 を少し簡略化

>>221 Python3

s = "D a B c d c C A E c e B b".split();
d = {}
for c in s:
  u = c.upper()
  d[u] = d[u]+' '+c if u in d else c
print(' '.join(map(lambda x: '(%s)' % d[x], sorted(d.keys()) )))
262: 253 2020/08/10(月)00:03 ID:5Aj+dIHX(2/2) AAS
>>260
substrとかでも書ける
263
(1): 253 2020/08/10(月)01:07 ID:mTkq56mc(1/2) AAS
>>260
>>257は一致する場合に対応するようあせって書いた面があり
正規表現を使うのはやりすぎ感があったのは確かなので
顕に正規表現を使わずに書きを考えてみた。
もっとも簡素な書き方として思いついたのがsplitで三分割して
前後の余った文字列を連結したらそれも一致するかなので

>>249 Perl5
use feature qw{signatures say};
sub strot_cmp($a, $b) {
 say "入力 $a $b";
省7
264
(1): 253 2020/08/10(月)01:18 ID:mTkq56mc(2/2) AAS
>>263 ゴメン、$a[2]$a[0]はbug、訂正

>>249 Perl5
use feature qw{signatures say};
sub strot_cmp($a, $b) {
 say "入力 $a $b";
 @a = split $b, "$a$a", 3;
 say "出力 ", ("$a[1]$a[0]") eq $b ? 'true' : 'false';
}
strot_cmp qw{abcde deabc};
strot_cmp qw{abcde cdeba};
省1
265: 253 2020/08/10(月)01:58 ID:5YDTUTIu(1) AAS
>>264 ゴメン
× @a = split $b, "$a$a", 3;
○ @a = split $b, "$a$a", 2;
266: ◆QZaw55cn4c 2020/08/10(月)02:53 ID:JYoLJZbs(1) AAS
>>249 C
2chスレ:tech
267
(5): 2020/08/10(月)05:44 ID:SKFyjjt9(1/3) AAS
お題:
Brainfuck実行環境を作成し,以下のhello.bfを読み込み実行してください

入力: 外部リンク[bf]:github.com
出力: "Hello World!"
268: 2020/08/10(月)08:49 ID:SwBLGnEH(1/2) AAS
>>267 Ruby

require 'open-uri'
str = open('外部リンク[read]:raw.githubusercontent.com

M = 256
i = p = s = 0
h = Hash.new(0)
m = [0] * M
while i < str.length
  case str[i]
  when ?+ then m[p] += 1
省11
269: 2020/08/10(月)08:49 ID:OSJh6/O/(1) AAS
>>267 Ruby
外部リンク:ideone.com
270: 2020/08/10(月)17:10 ID:Z7zFlWuQ(1/2) AAS
>>249
Kotlin

簡単なやり方は出尽くしたのであえてグルグル回すだけのIteratorを作成した。

外部リンク:paiza.io
271: 2020/08/10(月)17:10 ID:SKFyjjt9(2/3) AAS
>>267 C++
外部リンク:ideone.com
272
(2): 2020/08/10(月)18:01 ID:Z7zFlWuQ(2/2) AAS
>>267
Kotlin

とりあえず簡単そうだったので Kotlin へのコンバータを作った(コンバータなのでKotlinのソースを出力するだけ)。
実行したい場合はその出力を Kotlin コンパイラに読ませてコンパイルしてから Java VM で動かす必要がある。

外部リンク:paiza.io

こちらの Linux 環境でコマンドラインの kotlinc を使ってやった時はこうやった。(BF2Kotlin.kt がコンバータ。hello.bf はダウンロードしたプログラム)

$ kotlinc BF2Kotlin.kt
$ kotlin BF2KotlinKt < hello.bf > hello.kt
$ kotlinc hello.kt
$ kotlin HelloKt
省1
273
(1): 2020/08/10(月)18:43 ID:TsKVv45J(1) AAS
>>249
Python3
外部リンク:ideone.com
274: 2020/08/10(月)21:10 ID:EfqLUS40(1) AAS
>>249 Python3
def f(a, b): return len(a) == len(b) and a in b + b
1-
あと 728 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.205s*